普段使いのUbuntuを入れているノートのHDDの容量を変更(500GB⇒1TB)しました。システム領域は変更せず、home領域のパーティションを拡張しました。ファイルシステムがxfsで、記事が少ない気がするので備忘録代わりに書いてみました。
※ファイルシステムがext2/ext3/ext4などの場合はfdiskでパーティションを再構成し、e2fsck,resizefsなどをするようですが、ここでは使いません。
大まかな手順は以下になります。
- ddでデータをバイトごとまるっとコピー
- partedでhome領域のパーティションを拡張
- xfs_growfsでxfsのhome領域を拡張
準備
- 新HDDはUSB接続のHDDケースにセットし、ノートから認識できるようにします。今回は玄人志向のGW2.5TL-U3を使いました。
- ノートのBIOSでブート順位を光学ドライブを最優先にします。
- CDブートのlinuxを用意し、これでノートを起動します。今回はUbuntu 18.04のインストールDVDを使いました。(インストールDVDですが、Ubuntuの環境を試すのにも使えます。)
- 起動したら1.で用意したHDDをノートに接続します。
- 旧HDDが/dev/sda、新HDDが/dev/sdbで使えるようになったら準備完了です。
dd
DVDから起動したUbuntuで端末を開き以下を実行します。
% sudo su
# dd if=/dev/sda of=/dev/sdb bs=32M
parted
以下が実行ログになります。パーティション番号1がシステム領域(/)、番号2がスワップ、番号3がhome領域(/home)です。拡張対象は番号3ですが、resizeコマンドは使えませんでした…
# parted /dev/sdb
GNU Parted 3.2
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) print
モデル: WDC WDS 100T2B0A-00SM50 (scsi)
ディスク /dev/sdb: 1000GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 21.5GB 21.5GB primary xfs boot
2 21.5GB 34.4GB 12.9GB primary linux-swap(v1)
3 34.4GB 525GB 491GB primary xfs
(parted) resize 3 34.4GB 1000GB
エラー: resize コマンドは parted 3.0 で削除されました
(parted) p
モデル: WDC WDS 100T2B0A-00SM50 (scsi)
ディスク /dev/sdb: 1000GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 21.5GB 21.5GB primary xfs boot
2 21.5GB 34.4GB 12.9GB primary linux-swap(v1)
3 34.4GB 525GB 491GB primary xfs
(parted) help
align-check TYPE N パーティション N のアライメント(TYPE: min|opt)をチェックする
help [コマンド] ヘルプ表示。コマンド指定でそのヘルプを表示
mklabel,mktable ラベルの種類 新しいラベル(パーティションテーブル)を作る
mkpart パーティションの種類 [ファイルシステムの種類] 開始 終了
パーティションを作る
name NUMBER 名前 パーティションに名前をつける
print [devices|free|list,all|NUMBER]
パーティションテーブルや、利用可能なデバイス、空き領域、
見つかった全てのパーティション、あるいは特定のパーティションについて表示する
quit プログラムを終了する
rescue 開始 終了 開始、終了で指定した範囲付近にあるパーティションを復活させる
resizepart NUMBER END パーティション NUMBER を END にリサイズする
rm NUMBER パーティションを削除する
select デバイス 操作するデバイスを選択
disk_set FLAG STATE 選択したデバイスの FLAG を変更
disk_toggle [FLAG] 選択したデバイスの FLAG の状態をトグル
set NUMBER フラグ 状態 ファイルシステムのフラグと状態を設定する
toggle [NUMBER [FLAG]] パーティションのフラグの状態を反転する
unit UNIT デフォルトの単位を UNIT にする
version GNU Parted のバージョンと著作権情報を表示
(parted) resizepart 3 1000GB
(parted) p
モデル: WDC WDS 100T2B0A-00SM50 (scsi)
ディスク /dev/sdb: 1000GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 21.5GB 21.5GB primary xfs boot
2 21.5GB 34.4GB 12.9GB primary linux-swap(v1)
3 34.4GB 1000GB 966GB primary xfs
(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
xfs_growfs
以下が実行ログになります。xfs_growfsは対象パーティションをマウントしてから実行します。xfs_growfsの実行前後でdfコマンドの比較でパーティションサイズが457GBから900GBに増加しているのが分かります。
root@ubuntu:/home/ubuntu# mkdir -p /tmp/sdb3
root@ubuntu:/home/ubuntu# mount /dev/sdb3 /tmp/sdb3
root@ubuntu:/home/ubuntu# df -h
Filesystem Size Used Avail Use% Mounted on
udev 5.8G 0 5.8G 0% /dev
tmpfs 1.2G 1.7M 1.2G 1% /run
/dev/sr0 1.8G 1.8G 0 100% /cdrom
/dev/loop0 1.7G 1.7G 0 100% /rofs
/cow 5.8G 464M 5.4G 8% /
tmpfs 5.8G 36M 5.8G 1% /dev/shm
tmpfs 5.0M 8.0K 5.0M 1% /run/lock
tmpfs 5.8G 0 5.8G 0% /sys/fs/cgroup
tmpfs 5.8G 516K 5.8G 1% /tmp
tmpfs 1.2G 48K 1.2G 1% /run/user/999
/dev/loop1 87M 87M 0 100% /snap/core/5145
/dev/loop2 35M 35M 0 100% /snap/gtk-common-themes/319
/dev/loop3 141M 141M 0 100% /snap/gnome-3-26-1604/70
/dev/loop4 2.4M 2.4M 0 100% /snap/gnome-calculator/180
/dev/loop5 13M 13M 0 100% /snap/gnome-characters/103
/dev/loop6 15M 15M 0 100% /snap/gnome-logs/37
/dev/loop7 3.8M 3.8M 0 100% /snap/gnome-system-monitor/51
tmpfs 1.2G 0 1.2G 0% /run/user/0
/dev/sdb3 457G 369G 89G 81% /tmp/sdb3
root@ubuntu:/home/ubuntu# xfs_growfs -d /tmp/sdb3
meta-data=/dev/sdb3 isize=256 agcount=4, agsize=29953121 blks
= sectsz=512 attr=2, projid32bit=0
= crc=0 finobt=0 spinodes=0 rmapbt=0
= reflink=0
data = bsize=4096 blocks=119812482, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=58502, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 119812482 to 235751761
root@ubuntu:/home/ubuntu# df -h
Filesystem Size Used Avail Use% Mounted on
udev 5.8G 0 5.8G 0% /dev
tmpfs 1.2G 1.7M 1.2G 1% /run
/dev/sr0 1.8G 1.8G 0 100% /cdrom
/dev/loop0 1.7G 1.7G 0 100% /rofs
/cow 5.8G 464M 5.4G 8% /
tmpfs 5.8G 36M 5.8G 1% /dev/shm
tmpfs 5.0M 8.0K 5.0M 1% /run/lock
tmpfs 5.8G 0 5.8G 0% /sys/fs/cgroup
tmpfs 5.8G 516K 5.8G 1% /tmp
tmpfs 1.2G 48K 1.2G 1% /run/user/999
/dev/loop1 87M 87M 0 100% /snap/core/5145
/dev/loop2 35M 35M 0 100% /snap/gtk-common-themes/319
/dev/loop3 141M 141M 0 100% /snap/gnome-3-26-1604/70
/dev/loop4 2.4M 2.4M 0 100% /snap/gnome-calculator/180
/dev/loop5 13M 13M 0 100% /snap/gnome-characters/103
/dev/loop6 15M 15M 0 100% /snap/gnome-logs/37
/dev/loop7 3.8M 3.8M 0 100% /snap/gnome-system-monitor/51
tmpfs 1.2G 0 1.2G 0% /run/user/0
/dev/sdb3 900G 369G 531G 42% /tmp/sdb3
新HDDで起動
ノートのHDDを交換してブートします。