#author("2021-02-13T17:00:43+09:00","default:honma","honma") #author("2021-02-13T17:35:10+09:00","default:honma","honma") * SDイメージのシュリンク [#x043c88a] 以前「 [[Kali Linux を RaspberryPi にインストールする]]」で作成したSDイメージのバックアップを作成する。~ 32GBのSDカードを使用したので、そのままディスクイメージを作成せずシュリンクしてしまう手順のメモ。~ ~ 作業は仮想マシンで実施している。~ ** ディスクイメージの作成 [#i3d7df60] まずは、カードのアンマウント。 $ sudo umount /media/developer/BOOT $ sudo umount /media/developer/ROOTFS ディスクイメージを作成。 $ sudo dd bs=4M if=/dev/sdb of=/mnt/hgfs/share/recovery.img status=progress conv=fsync 31243370496 bytes (31 GB, 29 GiB) copied, 4998 s, 6.3 MB/s 7449+0 レコード入力 7449+0 レコード出力 31243370496 bytes (31 GB, 29 GiB) copied, 4997.8 s, 6.3 MB/s ループバックデバイスがあることを確認し、イメージファイルをループバックデバイスに関連付ける。 $ sudo losetup -f /dev/loop0 $ sudo losetup /dev/loop0 /mnt/hgfs/share/recovery.img ループバックデバイスのパーティションを認識させる。 $ sudo partprobe /dev/loop0 gpartedをインストールする。 $ sudo apt install gparted gpartedを起動してパーティションの容量を変更する。 $ sudo gparted /dev/loop0 +パーティション(P) - リサイズ/移動(R)~ /dev/loop0p2(ext4)の空きが19.91GiBなので1GiBほどまで小さくする。 +編集(E) - 保留中の全ての操作を適用する(A) を実行する。 ループバックデバイスの関連付けを解除する。 $ sudo losetup -d /dev/loop0 作成したディスクイメージの確認。 $ sudo fdisk -l /mnt/hgfs/share/recovery.img Disk /mnt/hgfs/share/recovery.img: 29.1 GiB, 31243370496 bytes, 61022208 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 Disklabel type: dos Disk identifier: 0x9f1f2384 Device Boot Start End Sectors Size Id Type /mnt/hgfs/share/recovery.img1 2048 262143 260096 127M c W95 FAT32 ( /mnt/hgfs/share/recovery.img2 262144 21561343 21299200 10.2G 83 Linux ファイルのサイズはもとのままなのでをシュリンクする。~ Linuxパーティションの最後(21561343)に1加算したサイズに切り詰める。 $ truncate --size=$[(21561343+1)*512] /mnt/hgfs/share/recovery.img ** SDイメージのリサイズ方法 [#j44b894f] あるあるな話で、切り詰めた領域をSDイメージに書き込んだ後に拡げる方法。~ ~ 現状の確認。~ kali@kali:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 28.9G 0 disk mmcblk0p1 179:1 0 127M 0 part /boot mmcblk0p2 179:2 0 10.2G 0 part / kali@kali:~$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/root 10G 8.9G 641M 94% / devtmpfs 454M 0 454M 0% /dev tmpfs 459M 0 459M 0% /dev/shm tmpfs 184M 920K 183M 1% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock /dev/mmcblk0p1 126M 69M 57M 55% /boot tmpfs 92M 56K 92M 1% /run/user/129 tmpfs 92M 52K 92M 1% /run/user/1000 1Gほど空けたつもりだったが、実際は残りが641Mなので、そのままだと使い勝手が悪そうなのでgrowpartを使用して拡張する。~ kali@kali:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 28.9G 0 disk mmcblk0p1 179:1 0 127M 0 part /boot mmcblk0p2 179:2 0 10.2G 0 part / kali@kali:~$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/root 10G 8.9G 641M 94% / devtmpfs 454M 0 454M 0% /dev tmpfs 459M 0 459M 0% /dev/shm tmpfs 184M 920K 183M 1% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock /dev/mmcblk0p1 126M 69M 57M 55% /boot tmpfs 92M 56K 92M 1% /run/user/129 tmpfs 92M 52K 92M 1% /run/user/1000 growpart のインストール。 kali@kali:~$ sudo apt install cloud-guest-utils パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 状態情報を読み取っています... 完了 提案パッケージ: cloud-init 以下のパッケージが新たにインストールされます: cloud-guest-utils アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 23.7 kB のアーカイブを取得する必要があります。 この操作後に追加で 62.5 kB のディスク容量が消費されます。 取得:1 http://ftp.jaist.ac.jp/pub/Linux/kali kali-rolling/main arm64 cloud-guest-utils all 0.31-2 [23.7 kB] 23.7 kB を 1秒 で取得しました (33.4 kB/s) 以前に未選択のパッケージ cloud-guest-utils を選択しています。 (データベースを読み込んでいます ... 現在 334167 個のファイルとディレクトリがインストールされています。) .../cloud-guest-utils_0.31-2_all.deb を展開する準備をしています ... cloud-guest-utils (0.31-2) を展開しています... cloud-guest-utils (0.31-2) を設定しています ... man-db (2.9.3-2) のトリガを処理しています ... kali-menu (2021.1.4) のトリガを処理しています ... growpart でサイズを拡張する。 kali@kali:~$ sudo growpart /dev/mmcblk0 2 CHANGED: partition=2 start=262144 old: size=21299200 end=21561344 new: size=60243935 end=60506079 拡張されたサイズの確認。 kali@kali:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT mmcblk0 179:0 0 28.9G 0 disk mmcblk0p1 179:1 0 127M 0 part /boot mmcblk0p2 179:2 0 28.7G 0 part / resize2fs で ファイルシステムのサイズを変更する。 kali@kali:~$ sudo resize2fs /dev/mmcblk0p2 resize2fs 1.46.1 (9-Feb-2021) Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/mmcblk0p2 is now 7530491 (4k) blocks long. 最終確認。 kali@kali:~$ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/root 29G 8.9G 19G 33% / devtmpfs 454M 0 454M 0% /dev tmpfs 459M 0 459M 0% /dev/shm tmpfs 184M 928K 183M 1% /run tmpfs 5.0M 4.0K 5.0M 1% /run/lock /dev/mmcblk0p1 126M 69M 57M 55% /boot tmpfs 92M 56K 92M 1% /run/user/129 tmpfs 92M 52K 92M 1% /run/user/1000 これで、バックアップ時はコンパクトに、使用するときは大きなサイズで使うことができた。 ~ ~ ※Raspberry PiはRaspberry Pi財団の登録商標です。 #htmlinsert(rpi3b+.html);