LoginSignup
4
2

More than 3 years have passed since last update.

xfsなHDDをより容量が大きいものに置き換えた話

Posted at

普段使いのUbuntuを入れているノートのHDDの容量を変更(500GB⇒1TB)しました。システム領域は変更せず、home領域のパーティションを拡張しました。ファイルシステムがxfsで、記事が少ない気がするので備忘録代わりに書いてみました。
※ファイルシステムがext2/ext3/ext4などの場合はfdiskでパーティションを再構成し、e2fsck,resizefsなどをするようですが、ここでは使いません。

大まかな手順は以下になります。

  • ddでデータをバイトごとまるっとコピー
  • partedでhome領域のパーティションを拡張
  • xfs_growfsでxfsのhome領域を拡張

準備

  1. 新HDDはUSB接続のHDDケースにセットし、ノートから認識できるようにします。今回は玄人志向のGW2.5TL-U3を使いました。
  2. ノートのBIOSでブート順位を光学ドライブを最優先にします。
  3. CDブートのlinuxを用意し、これでノートを起動します。今回はUbuntu 18.04のインストールDVDを使いました。(インストールDVDですが、Ubuntuの環境を試すのにも使えます。)
  4. 起動したら1.で用意したHDDをノートに接続します。
  5. 旧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を交換してブートします。

4
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2