トップ «前の日記(2026年07月12日) 最新 編集

Masa's blog

検索キーワード:

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