USB メモリにインストールした Arch Linux を別のへコピーする
目的
元々ある USB メモリにインストールしてあった Arch Linux を別の USB にブート可能な形で移動する。 コピー先の方が容量が小さいので、 dd は使えない気がする(?)。
登場人物
UUID を知るには lsblk -f
, サイズを知るには lsblk -m
コピー元USBメモリ : sdc
コピー先 : sdb
- sdb1: , fvat, 226A-xxxx, 3.8G
全削除する
方針
- sdb を普通インストールするときと同じようにパーティション分けする
- 両方を mount し、 rsync か何かを使って全パーティションをコピーする
- /boot 以下のファイル、 /etc/fstab でディスクの UUID を新しいものに書き換える
ログ
パーティション分け、フォーマット
# gdisk /dev/sdb
o で新たにパーティションテーブルを作り、 n でパーティションを作る。 先頭から 100M とそれ以外の全部に分ける。 あと一応 c でラベルをつけておく (Boot_ArchLinux, Root_ArchLinux)。 w で書き込んで終了。
# mkfs.ext2 /dev/sdb1 # mkfs.ext4 /dev/sdb2
ファイルのコピー
# mkdir usbcp && cd usbcp # mkdir src # mkdir dst # mount /dev/sdc1 src # mount /dev/sdb1 dst # rsync -aAXv src/ dst ## 動いてるシステムのコピーじゃないので exclude は不要 # umount src dst # mount /dev/sdc2 src # mount /dev/sdb2 dst # rsync -aAXv src/ dst # umount src dst
ファイルの書き換え
# mount /dev/sdb2 dst # vi dst/etc/fstab ## UUIDを書き換える # umount dst
ブートローダのインストール
# mount /dev/sdb2 /mnt # mount /dev/sdb1 /mnt/boot # arch-chroot /mnt # syslinux-install_update -i -a -m # exit # umount -R /mnt