Raspberry PiをQEMUでエミュレートする方法 では, Raspbian を QEMU で動作させる方法をまとめました. しかし, ダウンロードしたイメージのままではイメージファイルの空き容量が数百MBしかないため, ソフトウェアをインストールして本格的に利用することは困難です. ここでは, Raspbian のイメージファイルをリサイズする方法をまとめます.
イメージファイルのリサイズ
この作業はホスト側で行います. ここでは, 2013-09-25-wheezy-raspbian.img のイメージファイルを1GB拡張します.
qemu-img resize 2013-09-25-wheezy-raspbian.img +1GB
パーティションのリサイズ
パーティションのリサイズを行うため, QEMU で先ほど拡張したイメージファイルを起動します.
Raspbian にログインし, fdisk を使ってパーティションテーブルを操作します.
pi@raspberrypi:~$ sudo fdisk /dev/sda
現在のパーティションテーブルを確認します.
Command (m for help): p Disk /dev/sda: 4035 MB, 4035969024 bytes 125 heads, 62 sectors/track, 1017 cylinders, total 7882752 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: 0x0002c262 Device Boot Start End Blocks Id System /dev/sda1 8192 122879 57344 c W95 FAT32 (LBA) /dev/sda2 122880 5785599 2831360 83 Linux
ここでは /dev/sda2 を拡張する必要があるため, 一旦パーティション2を削除します.
Command (m for help): d Partition number (1-4): 2
改めてパーティション2を作成します. プライマリパーティションとして作成し, 開始セクタは2048ではなく, 先ほど削除したパーティションの開始セクタの122880を設定します. 終了セクタは最大値を設定します.
Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): 2 First sector (2048-7882751, default 2048): 122880 Last sector, +sectors or +size{K,M,G} (122880-7882751, default 7882751): 7882751
パーティションテーブルを書き込んで, fdisk を終了します.
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.
再起動するまで新しいパーティションテーブルが利用されないとの警告が表示されるので, Raspbian を再起動します.
pi@raspberrypi:~$ sudo reboot
ファイルシステムのリサイズ
再起動された段階ではまだファイルシステムの拡張を行ってないため, 空き容量は増えていません.
pi@raspberrypi:~$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 2.7G 2.5G 59M 98% / /dev/root 2.7G 2.5G 59M 98% / devtmpfs 125M 0 125M 0% /dev tmpfs 25M 184K 25M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 50M 0 50M 0% /run/shm
resize2fs を使って, ファイルシステムのリサイズを行います.
pi@raspberrypi:~$ sudo resize2fs /dev/sda2 resize2fs 1.42.5 (29-Jul-2012) Filesystem at /dev/sda2 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 1 The filesystem on /dev/sda2 is now 969984 blocks long.
これでファイルシステムのリサイズが完了しました. QEMU 上の Raspbian にも様々なソフトウェアを入れてテストできるようになります.
pi@raspberrypi:~$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 3.7G 2.5G 1.1G 72% / /dev/root 3.7G 2.5G 1.1G 72% / devtmpfs 125M 0 125M 0% /dev tmpfs 25M 184K 25M 1% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 50M 0 50M 0% /run/shm