後で調べてみようと考えていた項目を一部検証してみた。
raw disk image の使用領域を変更して再書込み
raw disk image の swap 領域を一度解放し、領域を小さくしてから再度書き込んでみた。
$ LANG=C fdisk -l /mnt/datahdd/sdb_new.img Disk /mnt/datahdd/sdb_new.img: 119.2 GiB, 128036536320 bytes, 250071360 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: 0xba8ee247 Device Boot Start End Sectors Size Id Type /mnt/datahdd/sdb_new.img1 * 2048 241682431 241680384 115.2G 83 Linux /mnt/datahdd/sdb_new.img2 241682432 243779583 2097152 1G 82 Linux swap / Solaris
swap を 4GB から 1GBに小さくした。
dd の bs option で書き込み速度は変わる?
qiita.com
qiita.com
dd の bs は bs=16M (16mでは実行できなかった) が良さそうなので、この条件で書き込んでみた。
$ LANG=C sudo dd if=/mnt/datahdd/sdb_new.img of=/dev/sdc bs=16M status=progress 128026935296 bytes (128 GB, 119 GiB) copied, 2830 s, 45.2 MB/s dd: error writing '/dev/sdc': No space left on device 7631+1 records in 7631+0 records out 128035676160 bytes (128 GB, 119 GiB) copied, 2840.57 s, 45.1 MB/s
書き込みは 47分で終了した。rand. access より seq. access 寄りで速度が向上するのだろうか。最後端の swap 領域を少なくしても、結局は total sectors は多いままなので、書き込みの最後に error は出てしまう。partition を確保していない場所なので影響はないはず。
仮想マシンの起動にも成功。ただし、
- floppy disk に関するエラーが出ていた。
- swap を切りなおしたので UUID が変わり、エラーが出ていた。
floppy disk のエラー
Hyper-V 第一世代の floppy disk は除外できない模様。前までは出ていなかったのだが...
dmesg: ... 略 ... [ 2.065286] blk_update_request: I/O error, dev fd0, sector 0 [ 2.068089] floppy: error -5 while reading block 0 ... 略 ... # dmesg | grep -i floppy | grep -i error | wc -l 54
vmlinuz と initramfs の読込後に出ているので、initramfs に処理が移ってから発生している。
blogs.technet.microsoft.com
試しに virtual floppy disk を接続して起動すると、error は無くなるが、boot を試して失敗するまでの間に待たされる。Hyper-V 仮想マシンの起動順は CD、ide、network、floppy なので、floppy を最初に読みに行くことはないはずなのだが...
gihyo.jp
scribble.washo3.com
nabe.adiary.jp
modprobe の blacklist に追加する、というのが定番らしい。結果的に、
/etc/modprobe.d/blacklist: blacklist floppy # update-initramfs -u
blacklist に追加して initramfs を作り直し、再起動してOK。
swap のエラー
# mkswap /dev/sda2 # No.2 partition が swap
として、/etc/fstab の swap の UUID を変更すれば解消した。