2 min read

VMのHDD拡張

毎回調べ直すのでメモ

/dev/sda1を拡張する。
すでにESXi上でvHDDの拡張はしてあるが、パーティションを変えないと使えない。

パーティションを消す前の情報はスクショかなんかを撮っておく。

fdisk中にわけわかめになったりミスったらとにかくqで抜けてなかったことにしよう
頭ごっちゃのまま進めてはいけない

# fdisk /dev/sda
p # 表示コマンド
~中略~
Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *        2048 10547199 10545152    5G 83 Linux
/dev/sda2       10549246 12580863  2031618  992M  5 Extended
/dev/sda5       10549248 12580863  2031616  992M 82 Linux swap / Solaris

# 一旦全パーティション削除 (データは消えない)
d # これを3回

sda1を作成

n # パーティション作成

type: primary, number: 1を作成
First sectorがパーティションを消す前の/dev/sda1Startと同じ値であればOK
同じにしないとデータが死ぬ(はず)

Last sectorの後にスワップパーティションを作るのでその分を空ける
上記の992Mのままいく場合は-992Mと入力すればセクタ数を勝手に計算してくれる
もちろん手で計算してセクタを具体的に入力してもOK

Do you want to remove the signature? [Y]es/[N]o:

これよくわからん。いつもnしてる。

ブートフラグをつける

a # ブートフラグコマンド
1 # partition number

sda2,5を作成

気をつけるべきところは終わったのでサクッといく
FirstやLast sectorはもう残りを全部使わせるのでEnterでデフォルトを適用させる

n
e # extended
2
[Enter] # First sector default
[Enter] # Last sector default
# /dev/sda2できた

n # 全部セクタを使い切ってるので勝手にロジカルパーティションになる
[Enter] # First sector default
[Enter] # Last sector default
# /dev/sda5できた

### /dev/sda5のタイプ変更
t
5 # partition number
82 # type number (Linux swap / Solaris) # 全部のタイプ見たかったらL

パーティションはできた

できたのでwで保存&終了

# 整合性チェック
e2fsck -f /dev/sda1
# パーティション拡張
resize2fs /dev/sda1

これで拡張はOK

スワップの作成と指定

/dev/sda5はセクタの場所を変えたのでスワップとして再構築してあげないといけない

これは/dev/sda1の中身もいじる作業なのでVM起動してからでもいいかも
※起動時にスワップ領域が見つからず1分半くらい待たされる
mountしてできると思うけどそういえばやったことない

# 読みづらいのでここだけ $ 書いてます

$ sudo mkswap /dev/sda5
# ここでUUID出るけど一応すべてのUUID確認方法も
# sudo blkid

$ sudo nano /etc/fstab
# /dev/sda5のUUIDを更新させる

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.9.0-11-amd64
W: initramfs-tools configuration sets RESUME={UUID=古いUUID}
W: but no matching swap device is available.
I: The initramfs will attempt to resume from /dev/sda5
I: (UUID={新しいUUID})
I: Set the RESUME variable to override this.

# こう出たら以下のファイルのUUIDを書き換える
# /etc/initramfs-tools/conf.d/resume

# 最後にスワップを適用するために再起動
$ sudo reboot

終わり!閉廷!