You are not logged in.
Getting "error: disk `hd1,gpt1' not found" whenever I select Arch in the GRUB menu. I'm assuming it's some issue related to LUKS but I'm not sure what I'm doing wrong.
lsblk -f
NAME FSTYPE UUID
sda
sda1 crypto_LUKS eb8cf39b-1983-4645-83cc-4455c478f9f9
data ext4 a9b86300-fdf9-4815-a103-42bcb05ae40f
nvme0n1
nvme0n1p1 vfat C995-E165
nvme0n1p2 crypto_LUKS 920d6b5c-d7c6-4e22-980a-32ad32383308
root ext4 2aa548f6-f96f-4197-b795-ba10a001a9c3blkid
/dev/mapper/data: UUID="a9b86300-fdf9-4815-a103-42bcb05ae40f" BLOCK_SIZE="4096" TYPE="ext4"
/dev/nvme0n1p1: UUID="C995-E165" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="369afe66-ba3d-46f0-b4a8-605a1ea28a00"
/dev/nvme0n1p2: UUID="920d6b5c-d7c6-4e22-980a-32ad32383308" TYPE="crypto_LUKS" PARTLABEL="root" PARTUUID="f3972417-1231-4cb4-a661-abf332f20450
/dev/mapper/root: UUID="2aa548f6-f96f-4197-b795-ba10a001a9c3" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sda1: UUID="eb8cf39b-1983-4645-83cc-4455c478f9f9" TYPE="crypto_LUKS" PARTLABEL="data" PARTUUID="34fa7577-a326-4d4f-9409-249c62cc5369"/etc/fstab
# /dev/mapper/root
UUID=2aa548f6-f96f-4197-b795-ba10a001a9c3 / ext4 rw,relatime 0 1
# /dev/mapper/data
UUID=a9b86300-fdf9-4815-a103-42bcb05ae40f /data ext4 rw,relatime 0 2
# /dev/nvme0n1p1
UUID=C995-E165 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2excerpt of /etc/default/grub
GRUB_CMDLINE_LINUX="cryptdevice=UUID=920d6b5c-d7c6-4e22-980a-32ad32383308:root root=UUID=2aa548f6-f96f-4197-b795-ba10a001a9c3"
GRUB_ENABLE_CRYPTODISK=y/etc/mkinitcpio.conf hooks
HOOKS=(base udev autodetect modconf keyboard keymap consolefont block encrypt filesystems fsck)Last edited by Jahzy (2023-03-20 22:40:40)
Offline
i can see two problems and one thing that doesnt need to be there.
-remove this as your /boot is not encrypted:
GRUB_ENABLE_CRYPTODISK=y-change this:
GRUB_CMDLINE_LINUX="cryptdevice=UUID=920d6b5c-d7c6-4e22-980a-32ad32383308:root root=UUID=2aa548f6-f96f-4197-b795-ba10a001a9c3"to this:
GRUB_CMDLINE_LINUX="cryptdevice=UUID=920d6b5c-d7c6-4e22-980a-32ad32383308:root"grub will add /dev/mapper/root by itself when you generate the config.
-and lastly you need to add 'lvm2' to your mkinitcpio.conf:
HOOKS=(base udev autodetect modconf keyboard keymap consolefont block encrypt lvm2 filesystems fsck)after all that regenerate your grub and mkinit:
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -p linuxOffline
I'm not utilizing LVM but I changed the things you said and I still get "error: disk `hd1,gpt1' not found"
Offline
please post complete:
/etc/default/grub
/etc/mkinitcpio.conf
/boot/grub/grub.cfg
/etc/crypttabOffline
/etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFUALT="loglevel-3 quiet nvidia_drm.modeset=1"
GRUB_CMDLINE_LINUX="cryptdevice=UUID=920d6b5c-d7c6-4e22-980a-32ad32383308:root"
GRUB_PRELOAD_MODULES="part_gpt luks usb usb_keyboard ohci uhci ehci"
GRUB_TIMEOUT_STYLE=menu
GRUB_TERMINAL_INPUT="usb_keyboard"
GRUB_GFXMODE=auto
GRUB_GFXPAYLOAD_LINUX=keep
GRUB_DISABLE_RECOVERY=true
These are the only things that are not commented out./etc/mkinitcpio.conf
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
BINARIES=()
FILES=()
HOOKS=(base udev autodetect modconf keyboard keymap consolefont block encrypt filesystems fsck)/boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEING /etc/grub.d/00_header ###
insmod part_gpt
insmod luks
insmod usb
insmod usb_keyboard
insmod ohci
insmod uhci
insmod ehci
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option""
fu
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if loadfont unicode ; then
set gfxmode=auto
load_video
insmod gfxterm
fi
terminal_input usb_keyboard
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Arch Linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2aa548f6-f96f-4197-b795-ba10a001a9c3' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root C995-E165
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=2aa548f6-f96f-4197-b795-ba10a001a9c3 rw cryptdevice=UUID=920d6b5c-d7c6-4e22-980a-32ad32383308:root loglevel=3 quiet nvidia_drm.modeset=1
echo 'Loading initial ramdisk ...'
initrd /amd-ucode.img /initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-2aa548f6-f96f-4197-b795-ba10a001a9c3' {
menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-2aa548f6-f96f-4197-b795-ba10a001a9c3' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root C995-E165
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=2aa548f6-f96f-4197-b795-ba10a001a9c3 rw cryptdevice=UUID=920d6b5c-d7c6-4e22-980a-32ad32383308:root loglevel=3 quiet nvidia_drm.modeset=1
echo 'Loading initial ramdisk ...'
initrd /amd-ucode.img /initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-2aa548f6-f96f-4197-b795-ba10a001a9c3' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root C995-E165
echo 'Loading Linux linux ...'
linux /vmlinuz-linux root=UUID=2aa548f6-f96f-4197-b795-ba10a001a9c3 rw cryptdevice=UUID=920d6b5c-d7c6-4e22-980a-32ad32383308:root loglevel=3 quiet nvidia_drm.modeset=1
echo 'Loading initial ramdisk ...'
initrd /amd-ucode.img /initramfs-linux-fallback.img
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
fwsetup --is-supported
if [ "$?" = 0 ]; then
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi_firmware' {
fwsetup
}
fi
fi
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custome.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###/etc/crypttab
This is default. I have not touched this file.Last edited by Jahzy (2023-03-20 02:28:19)
Offline
struggling to see the problem, try adding 'part_msdos' to your 'GRUB_PRELOAD_MODULES' like so:
GRUB_PRELOAD_MODULES="part_gpt part_msdos luks usb usb_keyboard ohci uhci ehci"according to arch wiki this MAY help, this is a stretch but all i can think of.
If you experience issues getting the prompt for a password to display (errors regarding cryptouuid, cryptodisk, or "device not found"), try reinstalling GRUB and appending --modules="part_gpt part_msdos" to the end of your grub-install command.
Offline
/etc/crypttab
This is default. I have not touched this file.
/data is encrypted according to lsblk. You should have an entry in /etc/crypttab to decrypt it, either by manually typing in the passphrase every boot, or by using a keyfile.
Never argue with an idiot, they will drag you down to their level and then beat you with experience.
It is better to light a candle than curse the darkness.
A journey of a thousand miles begins with a single step.
Offline
struggling to see the problem, try adding 'part_msdos' to your 'GRUB_PRELOAD_MODULES' like so:
GRUB_PRELOAD_MODULES="part_gpt part_msdos luks usb usb_keyboard ohci uhci ehci"according to arch wiki this MAY help, this is a stretch but all i can think of.
arch wiki wrote:If you experience issues getting the prompt for a password to display (errors regarding cryptouuid, cryptodisk, or "device not found"), try reinstalling GRUB and appending --modules="part_gpt part_msdos" to the end of your grub-install command.
I reinstalled GRUB and added those modules.
/data is encrypted according to lsblk. You should have an entry in /etc/crypttab to decrypt it, either by manually typing in the passphrase every boot, or by using a keyfile.
Now my /etc/crypttab looks like this:
data UUID=eb8cf39b-1983-4645-83cc-4455c478f9f9 /etc/mykeyfileShould efibootmgrbe showing the PARTUUID of the /boot partition or the UUID? When I run efibootmgrit displays the PARTUUID. Not sure if that is potentially an issue?
I still get "error: disk `hd1,gpt1' not found" at boot when I select Arch in the GRUB menu. I'm at a loss here.
Here's what I see in GRUB when I hit 'e':
setparams 'Arch Linux' 'gnulinux-simple-2aa548f6-f96f-4197-b795-ba10a001a9c3'
load video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root C995-E165
echo 'Loading Linux linux...'
linux /vmlinuz-linux root=UUID=2aa548f6-f96f-4197-b795-ba10a001a9c3 rw cryptdevice=UUID=920d6b5c-d7c6-4e22-980a-32ad32383308:root loglevel=3 quiet nvidia_drm.modeset=1In the GRUB shell:
grub> echo $prefix
error: disk `hd0,gpt1' not found.
grub> insmod fat
grub>I see prefix='(hd0,gpt1)/grub' when using set in the GRUB shell. If I set the prefix to '(hd1,gpt1)/grub' the error just changes to error: disk `hd1,gpt1' not found.
Last edited by Jahzy (2023-03-20 14:24:55)
Offline
Okay, this worked: https://bbs.archlinux.org/viewtopic.php?id=277092.
New problem is that I enter my password to decrypt my drive, it does so, but then it freezes.
EDIT: Fixed by adding modprobe.blacklist=amdgpu to the kernel parameters.
Last edited by Jahzy (2023-03-20 22:38:31)
Offline