2026年08月24日 Slackware64-current リカバリ手順 ELILO UEFI [長年日記]
_ UEFI環境にELILOブートローダでSlackware64-currentを構築し運用しているが、リカバリ手順を確認していなかった。 今回ようやくVMware workstation pro仮想マシン(UEFI)にリカバリ実験をして手順を確認した。
_ パーティション割当
# gdisk /dev/nvme0n1 Number Start (sector) End (sector) Size Code Name 1 2048 206847 100.0 MiB EF00 EFI system partition 2 206848 79898623 38.0 GiB 8200 Linux swap 3 79898624 1953523711 893.4 GiB 8300 Linux filesystem
_ ファイルシステム、スワップファイル作成
# mkfs -t vfat /dev/nvme0n1p1 # EFIパーティション # mkswap /dev/nvme0n1p2 # swapパーティション # mkfs -t ext4 /dev/nvme0n1p3 # rootパーティション
_ バックアップディレクトリのマウント
# mkdir /mnt/src # mount -t nfs -o ro 192.168.0.100:/mnt/harddisk /mnt/src
_ リストア先(rootパーティション)のマウント
# mkdir /mnt/dst # mount /dev/nvme0n1p3 /mnt/dst
_ リストア先(EFIパーティション)のマウント
# cd /mnt/dst # mkdir boot # mkdir boot/efi # mount /dev/nvme0n1p1 /mnt/dst/boot/efi
_ リストアの実行
# cd /mnt/dst # rsync -v -aHS --delete --acls --xattrs /mnt/src/backup_lifebook1/ .
_ ELILOインストール
仮想パーティションをリストア先(root)にマウント
# mount --bind /dev /mnt/dst/dev # mount --bind /proc /mnt/dst/proc # mount --bind /sys /mnt/dst/sys
インストール
# chroot /mnt/dst /bin/bash # リストア先のrootパーティションにchroot # cp /boot/efi/EFI/Slackware/elilo.conf /tmp/elilo.conf # elilo.confを一時的にバックアップ # eliloconfig # 対話的にELILOインストール -> elilo.confが上書きされてしまう 「Install ELILO on the EFI System Partition?」->「Yes」 「Add ELILO to the EFI boot menu?」 ->「Yes」 # cp /tmp/elilo.conf /boot/efi/EFI/Slackware/ # elilo.confを一時的バックアップから戻す
インストール(別解)
# chroot /mnt/dst /bin/bash # リストア先のrootパーティションにchroot # EFI_DEVICE=/dev/nvme0n1 # EFI_PARTITION=1 # efibootmgr -q -c -d $EFI_DEVICE -p $EFI_PARTITION -l "\\EFI\\Slackware\\elilo.efi" -L "Slackware"
もしバックアップ取得時点のrootデバイスが/dev/nvme0n1で、リストア時点のrootデバイスが/dev/sdaになった場合
新しいrootデバイス用のドライバを含むinitrd.gzを作成して入れ替える。
# cd /boot # udevadm info -a -n /dev/sda | grep -i drivers # 必要なドライバの確認 DRIVERS=="sd" DRIVERS=="mptspi" # mkinitrd -c -k 6.18.38 -m ext4:sd:mptspi # initrd.gzの作成 # cp efi/EFI/Slackware/initrd.gz efi/EFI/Slackware/initrd.gz.save # 現行のinitrd.gzのバックアップ # cp initrd.gz efi/EFI/Slackware/initrd.gz # initrd.gzの更新
chroot環境から抜ける
# exit
仮想パーティション、rootパーティションをアンマウントする
# umount /mnt/tmp/dev # umount /mnt/tmp/proc # umount /mnt/tmp/sys # umount /mnt/tmp/boot/efi # umount /mnt/tmp
再起動
# reboot
[ツッコミを入れる]