ここに掲載している記事は一部間違っているため、新しい記事を書き直しましたのでそちらをご参照ください。
→[修正版] ディスクスペースを拡張してみる@物理ディスク
bsdlabel なんて使いません。(白目
今度は本番。
gmirror でミラーされた、
器は 1TB、中身は 500GB な HDD を 1TB に広げる作業。
流石に dump | restore の 24時間マラソンはサービス影響的に厳しい。
gmirror で複製を取っているため GEOM が「やらせるものかー!」と邪魔をしてくるので、fdisk の代わりに gpart を使ったり geom.debugflags を 16 にして黙らせる必要有り。
gpart → bsdlabel → growfs
% gpart recover ada2 ★おまじない
ada2 recovering is not needed
% gpart show ada2
=> 63 1953525105 ada2 MBR (932G)
63 976768002 1 freebsd [active] (466G)
976768065 976757103 - free - (466G) ★余ってる領域
% sudo gpart resize -i 1 -s 1000GB ada2
gpart: size '2097152000': Invalid argument ★大きかった
% sudo gpart resize -i 1 -s 932GB ada2
gpart: size '1954545664': Invalid argument ★大きかった
% sudo gpart resize -i 1 -s 930GB ada2
ada2s1 resized ★取れた。
% gpart show ada2
=> 63 1953525105 ada2 MBR (932G)
63 1950351360 1 freebsd [active] (930G)
1950351423 3173745 - free - (1.5G) ★ちょっと余った
% sudo gpart resize -i 1 -s 931GB ada2
ada2s1 resized
% gpart show ada2
=> 63 1953525105 ada2 MBR (932G)
63 1952448512 1 freebsd [active] (931G)
1952448575 1076593 - free - (526M) ★惜しい
% sudo gpart resize -i 1 -s 932GB ada2
gpart: size '1954545664': Invalid argument ★残りが取れない
% sudo gpart resize -i 1 -s 1953525105 ada2 ★ada2のブロック数全部を指定
ada2s1 resized ★取れた!
% gpart show ada2
=> 63 1953525105 ada2 MBR (932G)
63 1953525105 1 freebsd [active] (932G)
教訓。
サイズ (-s) はバイトサイズではなくブロックサイズで指定しよう。
これで拡張できました。
次に bsdlabel で広げるが、"Operation not permitted" と言われるので geom.debugflag=16 にして黙らせる。
% sysctl kern.geom.debugflags
kern.geom.debugflags: 0
% sudo sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16
bsdlabel で広げる。
-w じゃなくて -e だからな!間違うなよ!!!!
% sudo bsdlabel -e /dev/ada2s1
8 partitions:
c: 1953525105 0 unused 0 0 # "raw" part, don't edit
d: 1953525105 0 4.2BSD 0 0 0
★先頭からきっちり使っているのでサイズは同じ数字にする。
今回は gmirror によって先頭 16ブロックを無視して完全にゼロから使いはじめていたので c: と d: の値は同じになった。
初めに bsdlabel スライス でオフセットがどうなってるかを確認してから適切な数字を入力すること。
終わったら geom.debugflag を元に戻しておく。
% sudo sysctl kern.geom.debugflags=0
kern.geom.debugflags: 16 -> 0
最後に growfs。
% sudo growfs /dev/ada2s1d
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/ada2s1d from 466GB to 932GB? [yes/no] yes
super-block backups (for fsck_ffs -b #) at:
977009952, 977386304, 977762656, 978139008, 978515360, 978891712, 979268064, 979644416, 980020768, 980397120, 980773472,
(省略)
見てみましょう。
% sudo mount /dev/ada2s1d /mnt
% df -m
Filesystem 1M-blocks Used Avail Capacity Mounted on
/dev/ada0s1a 36959 7565 26437 22% /
devfs 0 0 0 100% /dev
/dev/da1s1d 952 70 806 8% /var/log
/dev/mirror/mirror0s1d 461929 346476 78498 82% /pub1
/dev/md0 290 0 266 0% /tmp
/dev/ada2s1d 923859 346456 503493 41% /mnt
以上。
└ G兄
└ G兄
└ G兄
└ G兄
└ G兄
└ G兄
└ G兄
└ G兄
└ 山銀
└ G兄