これがSDカードブートのARMシングルボードコンピュータなんかだと、ちょっと厄介かも知れません。昔のBeagleBoardだと、よくfdiskを使って手作業でSDカードのパーティションを切り、ブートローダとルートファイルシステムを入れるなんてことをしました。面倒ですがパーティションサイズを任意に設定できるので、大きいSDカードを使えばそれに合わせて広いルートファイルシステムのパーティションを確保できます。これが最近のRaspberry Piになると、SDカードイメージが丸ごと配布されているので、いちいちfdiskをする必要がなくてかなり楽なんですが、SDカードサイズにかかわらずイメージとして決め打ちされたパーティションサイズになってしまいます。Raspbianはインストール時のコンフィギュレーションでパーティション拡張ができますが、他のOSやボード向けのイメージで同様の機能がサポートされることはほとんどないと思います。
そこで、既にSDカードに書き込まれたパーティションを手作業で拡張することになるわけです。今回、UDOO向けUbuntuのルートファイルシステムパーティションを拡張したので、作業手順をメモっておきます。
SDカードは16GB、UDOO公式で配布のQuad向けUbuntu 12.04 LTSを焼いてあります。最初にdfしてみると、ルートファイルシステムは6GB程度のパーティションになっていました。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 6.4G 2.4G 3.7G 40% / devtmpfs 438M 4.0K 438M 1% /dev none 88M 2.6M 85M 3% /run none 5.0M 0 5.0M 0% /run/lock none 438M 100K 438M 1% /run/shmでは、fdiskで作業開始。
$ sudo fdisk /dev/mmcblk0まずpで現在の構成を確認。Startセクタはあとで入力しなおす必要があるので、 飛ばさないように。
Command (m for help): p Disk /dev/mmcblk0: 15.7 GB, 15720251392 bytes 255 heads, 63 sectors/track, 1911 cylinders, total 30703616 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000c356e Device Boot Start End Blocks Id System /dev/mmcblk0p1 16065 13623119 6803527+ 83 Linuxつぎに現在のd→1と入力して現在のパーティションを削除。
Command (m for help): d Selected partition 1続いてnで新たにパーティションを作成。パーティションタイプはpでプライマリを選択します。パーティションナンバーはデフォルトのまま。ファーストセクタで先ほど表示させたStartの数字を入力します。ラストセクタは最大まで確保します。
Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): Using default value 1 First sector (2048-30703615, default 2048): 16065 Last sector, +sectors or +size{K,M,G} (16065-30703615, default 30703615): Using default value 30703615新たなパーティションはこんな感じ。
Command (m for help): p Disk /dev/mmcblk0: 15.7 GB, 15720251392 bytes 255 heads, 63 sectors/track, 1911 cylinders, total 30703616 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000c356e Device Boot Start End Blocks Id System /dev/mmcblk0p1 16065 30703615 15343775+ 83 Linuxでは、wで書き込みます。
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.ここで再起動。
$ sudo reboot最後に、既存のファイルシステムを拡張されたパーティションいっぱいまで広げるため、resize2fsコマンドを実行します。
$ sudo resize2fs /dev/mmcblk0p1 resize2fs 1.42 (29-Nov-2011) Filesystem at /dev/mmcblk0p1 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 Performing an on-line resize of /dev/mmcblk0p1 to 3835943 (4k) blocks. The filesystem on /dev/mmcblk0p1 is now 3835943 blocks long.dfで確認してみます。15GBまで拡大されました。
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 15G 2.4G 12G 18% / devtmpfs 438M 4.0K 438M 1% /dev none 88M 2.6M 85M 3% /run none 5.0M 0 5.0M 0% /run/lock none 438M 100K 438M 1% /run/shmまぁ手順としちゃHDDの場合と変わりませんやね。
参考
How can I resize my / (root) partition? - Stack Exchange
0 件のコメント:
コメントを投稿