VirtualBoxを使って(気合で)Fedora24のパーティションを拡張する

わりと辛かったのでメモ

講義でqcow2な形式を拡張して,LinuxのKarnelをbuildする必要があったのだが,root権限が使えない一般ユーザーなので 自分で出来るVirtualBoxでやってみる. 気合と書いてるのはその為.

なぜVirtualBoxを使わないといけないのか

どうもVirtualBoxで初期に振ったHDD容量以外は fdisk /dev/sda しても降ることが出来ないらしい….今回は2時間くらいそこで悩んだ


VirtualBoxでの操作

まずは拡張したいVirtualBoxのイメージをCloneしておく. 右クリックでClone押せば出来るっぽい.(なぜかCloneする時のアイコンが羊です) それで拡張する為に一旦shut downしておく.


 ターミナル上での操作

まずはローカルで ~/VirtualBox VMs にcd.

続いて容量の確認

$ VBoxManage showhdinfo anagura.vdi

UUID:           4e7f002a-a846-4880-a960-c59912501cd0
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /Users/e155730/VirtualBox VMs/anagura/anagura.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       50000 MBytes
Size on disk:   4898 MBytes
Encryption:     disabled
In use by VMs:  anagura (UUID: c4dfd1e7-5ebd-44d6-abb3-c12a3494529d)

ここの Capacityが問題.今回はやった後なんでわりとでかいが,8Gb程度になってるはず. さて変換 30Gほどあれば良いか

$ VBoxManage modifyhd clone-disk1.vdi --resize 30720
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

多分確認すれば増えている筈.


実際に反映させていく

さてこれでHDDを物理的に増やした(仮想的だけど)ので,それを実際にマシン側に反映させていく.

とりあえず先程反映させたVMを起動,rootあたりで入っておく.(一応suとかしてrootになっとく)

まずは今現在のパーティション環境を確認したいので

$ fdisk /dev/sda

fdisk (util-linux 2.28.2) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): 

な画面を表示させる.ここで確認はpだからおもむろにpを押すと

デバイス  起動 開始位置 最後から   セクタ サイズ Id タイプ
/dev/sda1  *        2048  1026047  1024000   500M 83 Linux
/dev/sda2        1026048 16777215 15751168   7.5G 8e Linux LVM

な画面が表示される. これは後々使うのでメモっておいてください

ここでsda2の方を拡張するのでsda2を消す.(先の段階でサイズが直ってたら変更する必要ない) fdisk内でdを選択

コマンド (m でヘルプ): d
パーティション番号 (1,2, 既定値 2): 2

パーティション 2 を削除しました

な感じで削除. 続いて サイズ変更fdisk内でnを選択して作る この時 開始位置を最初の通りに設定する こと.多分デフォルトでそうなってる. 終了位置を書かれてるMAXに設定して,再びp をすると大きくなっている.

ここでファイルに反映させるので必ずwを推して書き込ませること.

で,実際に反映させる.

$pvresize  /dev/sda2
  Physical volume "/dev/sda2" changed
  1 physical volume(s) resized / 0 physical volume(s) not resized

さて変更されているか.

$ pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               fedora_401
  PV Size               48.34 GiB / not usable 2.00 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              12374
  Free PE               10452
  Allocated PE          1922
  PV UUID               QmA0cN-CnqX-2nFy-2FoX-JFh0-cWhP-V51KUs

やっためう!! さて続いては論理的に拡張 今回は /dev/mapper/fedora(fedora_401)-rootに対して行う

$ lvextend -l +100%FREE /dev/mapper/fedora_401-root          
  Size of logical volume fedora_401/root changed from 6.71 GiB (1717 extents) to 47.54 GiB (12169 extents).
  Logical volume root successfully resized.

確認しとく

[root@401]/home/anagura# lvdisplay                                        
  --- Logical volume ---
  LV Path                /dev/fedora_401/swap
  LV Name                swap
  VG Name                fedora_401
  LV UUID                RyM5Tj-qGQN-PM13-gMUo-Uy7R-SdDd-4Id4Yt
  LV Write Access        read/write
  LV Creation host, time 401.pc.ie.u-ryukyu.ac.jp, 2016-10-14 20:13:39 +0900
  LV Status              available
  # open                 2
  LV Size                820.00 MiB
  Current LE             205
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
  --- Logical volume ---
  LV Path                /dev/fedora_401/root
  LV Name                root
  VG Name                fedora_401
  LV UUID                LJZan7-IpRp-7ssR-0BbZ-rovN-LcLz-7QMzpR
  LV Write Access        read/write
  LV Creation host, time 401.pc.ie.u-ryukyu.ac.jp, 2016-10-14 20:13:39 +0900
  LV Status              available
  # open                 1
  LV Size                47.54 GiB
  Current LE             12169
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

おーけー. ここで resize2fs /dev/mapper/fedora_401-root したさはあるが,これは古いらしく

$xfs_growfs /dev/mapper/fedora_401-root
meta-data=/dev/mapper/fedora_401-root isize=512    agcount=4, agsize=439552 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0
data     =                       bsize=4096   blocks=1758208, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1758208 to 12461056

で行う.

$ df -h                                 
ファイルシス                サイズ  使用  残り 使用% マウント位置
devtmpfs                      359M     0  359M    0% /dev
tmpfs                         371M     0  371M    0% /dev/shm
tmpfs                         371M  584K  370M    1% /run
tmpfs                         371M     0  371M    0% /sys/fs/cgroup
/dev/mapper/fedora_401-root    48G  3.8G   44G    8% /
tmpfs                         371M  8.0K  371M    1% /tmp
/dev/sda1                     477M  155M  293M   35% /boot
tmpfs                          75M     0   75M    0% /run/user/1000

無事変更されてる.良かった.

この辺参考にすると良い? qiita.com