私のPCがフリーズしたとき、私はUbuntu 18.10をbleachbitで掃除していました。再起動するとき、BusyBox(initramfs)でGrubの後に立ち往生しました。 BusyBoxを終了すると、次のメッセージが表示されます。
ALERT! UUID=f6fc1852-25c6-47a6-9976-... does not exist. Dropping to a Shell.
回復モードも同様に失敗しました。
Live CDで再起動し、ディスク上でfsck -f
を実行し、軽微なエラーを検出して修正した後、出力は正常でしたが、システムは再起動時にGrubを渡しませんでした。
異なる/boot
パーティションで完全に暗号化されたLVMがあります:
$ Sudo fdisk -l
Disk /dev/nvme0n1: 477 GiB, 512110190592 bytes, 1000215216 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: gpt
Disk identifier: 6B6C7A2C-478C-4999-ABD9-53A3BB5FE607
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 534527 532480 260M EFI System
/dev/nvme0n1p2 534528 567295 32768 16M Microsoft reserved
/dev/nvme0n1p3 567296 547442295 546875000 260.8G Microsoft basic data
/dev/nvme0n1p4 998166528 1000214527 2048000 1000M Windows recovery environment
/dev/nvme0n1p5 547442688 547969023 526336 257M Linux filesystem
/dev/nvme0n1p6 547969024 998166527 450197504 214.7G Linux filesystem
$ Sudo blkid
/dev/nvme0n1p1: LABEL="SYSTEM" UUID="7AA1-7D80" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="8030af7e-64f9-4090-9457-fcd97de33216"
/dev/nvme0n1p3: LABEL="Windows" UUID="DA32A3D932A3B8C1" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="ccc54701-8855-4d06-a7af-b3c4ce9e3c11"
/dev/nvme0n1p4: LABEL="WinRE_DRV" UUID="B242A4E642A4B111" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="73272228-de36-4cb9-959e-53792c2dc104"
/dev/nvme0n1p5: UUID="8618de9e-f06e-46de-9717-38f6da7b1969" TYPE="ext4" PARTUUID="7cdfe2e1-103d-4cf1-9436-0008d34b5ed6"
/dev/nvme0n1: PTUUID="6b6c7a2c-478c-4999-abd9-53a3bb5fe607" PTTYPE="gpt"
/dev/nvme0n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="6d62624f-eba4-4fbb-838e-9ce6087d1135"
/dev/nvme0n1p6: UUID="69a32ddc-3092-487f-99b5-b0e757c5ddf1" TYPE="crypto_LUKS" PARTUUID="f7199882-ca6f-44a9-8730-92386d62ef50"
ここでf6fc
で始まるUUIDはありません。 /
で復号化された後、udisksctl unlock -b
パーティション上の暗号化されたLVMのUUIDだったと思います。
fstab
は
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/nvme0n1p6_crypt / ext4 errors=remount-ro 0 1
# /boot was on /dev/nvme0n1p5 during installation
UUID=8618de9e-f06e-46de-9717-38f6da7b1969 /boot ext4 defaults 0 2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=7AA1-7D80 /boot/efi vfat umask=0077 0 1
# /windows was on /dev/nvme0n1p3 during installation
UUID=DA32A3D932A3B8C1 /windows ntfs defaults,umask=007,gid=46 0 0
/swapfile none swap sw 0 0
だから私はシステムをchrootし、udisksctl unlock -b
とルートを復号化するために続くものの両方を使用してGrubを再インストールしようとしました。
$ Sudo cryptsetup luksOpen /dev/nvme0n1p6 crypt
Enter passphrase for /dev/nvme0n1p6:
$ Sudo vgchange -ay
$ Sudo mount /dev/mapper/crypt /mnt
$ Sudo mount /dev/nvme0n1p5 /mnt/boot/
$ Sudo mount -t proc proc /mnt/proc
$ Sudo mount -o bind /dev /mnt/dev
$ Sudo mount -o bind /sys /mnt/sys
$ Sudo chroot /mnt
root@ubuntu:/# update-initramfs -c -k all
update-initramfs: Generating /boot/initrd.img-4.18.0-12-generic
Warning: couldn't identify filesystem type for fsck hook, ignoring.
root@ubuntu:/# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.0-12-generic
Found initrd image: /boot/initrd.img-4.18.0-12-generic
WARNING: Failed to connect to lvmetad. Falling back to device scanning.
Adding boot menu entry for EFI firmware configuration
done
しかし、ここでは、GrubはWindows 10を検出しません。ここで投稿したのは、それが機能しなかったためです。 fstab
にないUUIDでこの奇妙なエラーが発生します。また、ディスク全体でgrub-install
を試みましたが、変更はありませんでした。
編集:udisks2
でルートのロックを解除すると、次のようになります:
$ Sudo udisksctl unlock -b /dev/nvme0n1p6
Unlocked /dev/nvme0n1p6 as /dev/dm-0.
$ Sudo udisksctl mount -b /dev/dm-0
Mounted /dev/dm-0 at /media/root/f6fc1852-25c6-47a6-9776-4ed8b8d6b70e.
メディアの名前に注意してください。これは障害のあるUUIDと同じです。ですから、Grubは、実際に復号化される前に、復号化されたLVMのUUIDを探していると思われます。問題は、その呼び出しを見つける場所ですか?
編集2:その間、3ヶ月で初めてWindows 10で再起動し、BIOSとSSDファームウェアが更新されました。 Grubにはまだ運がありません。
編集3:/boot/grub/grub.cfg
で不正な呼び出しを見つけました:
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-f6fc1852-25c6-47a6-9776-4ed8b8d6b70e' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 8618de9e-f06e-46de-9717-38f6da7b1969
else
search --no-floppy --fs-uuid --set=root 8618de9e-f06e-46de-9717-38f6da7b1969
fi
linux /vmlinuz-4.18.0-12-generic root=UUID=f6fc1852-25c6-47a6-9776-4ed8b8d6b70e ro quiet splash elevator=noop $vt_handoff
initrd /initrd.img-4.18.0-12-generic
}
しかし、これは/etc/default/grub
です:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=noop"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
だから、どうすればそれを正しくするのですか?
/et/crypttab
が空の場合、それは間違いなく問題です。
次のようにルートパーティションを配置する必要があります。
nvme0n1p6_crypt UUID=f6fc1852-25c6-47a6-9776-4ed8b8d6b70e none luks
起動時にパスワードを入力すると仮定しています。キーファイルを使用する場合は、キーファイルを「なし」に変更します。
そのため、chroot内からupdate-initramfs
を再実行する必要があります。そして、私は確信していません、しかし、それはトリックをするべきです。 update-grub
を再実行して確認することもできます。
# boot a live USB/CD and open a terminal
$ Sudo cryptsetup luksOpen /dev/nvme0n1p6 crypt
Enter passphrase for /dev/nvme0n1p6:
$ Sudo mount /dev/mapper/crypt /mnt
# edit your /mnt/etc/crypttab to add root parttion as shown above
$ Sudo mount /dev/nvme0n1p5 /mnt/boot/
$ Sudo mount -o bind /proc /mnt/proc
$ Sudo mount -o bind /dev /mnt/dev
$ Sudo mount -o bind /sys /mnt/sys
$ Sudo chroot /mnt
root@ubuntu:/# Sudo update-initramfs -u -k all
root@ubuntu:/# Sudo update-grub
root@ubuntu:/# exit
$ Sudo umount /mnt/proc
$ Sudo umount /mnt/sys
$ Sudo umount /mnt/dev
$ umount /mnt/boot
$ umount /mnt
$ Sudo reboot
ライブUSBで起動し、「インストールせずにUbuntuを試す」を選択します。次に、新しいターミナルを開き、次のコマンドを入力します(各行の後にEnterキーを押します)。
Sudo add-apt-repository ppa:yannubuntu/boot-repair
Sudo apt-get update
Sudo apt-get install -y boot-repair && boot-repair
ダッシュ(画面の左上にあるUbuntuロゴ)または端末で「boot-repair」と入力して、Boot-Repairを起動します。
次に、「推奨修復」ボタンをクリックします。修復が完了したら、紙に記載されているURL(paste.ubuntu.com/XXXXX)をメモし、再起動して、OSへのアクセスを回復したかどうかを確認します。
警告:デフォルト設定は、「推奨修復」で使用される設定です。それらを変更すると、問題が悪化する可能性があります。 BootInfo URLを作成し、Ubuntu Forums Absolute Beginners SectionまたはInstallation and Upgradesでアドバイスを求める前にそれらを変更しないでください。