You are not logged in.
Hi there,
I hope you're doing well. I'm currently working on installing Arch Linux with RAID 0/1. I've configured my disks and RAID, successfully installed the system. However, upon reboot, I encountered a GRUB rescue error stating: "disk mduuid:********************** not found."
Below is the script I used to deploy my Arch Linux:
Diskconfig
mdadm --misc --zero-superblock /dev/sd*
dd if=/dev/zero of=/dev/sda bs=1M count=100
dd if=/dev/zero of=/dev/sdb bs=1M count=100
partprobe
parted /dev/$first_disk mklabel gpt -s
parted /dev/$first_disk mkpart primary fat32 1MiB 300MiB set 1 esp on -s
parted /dev/$first_disk mkpart primary ext4 8124MiB 100% -s
parted /dev/$second_disk mklabel gpt -s
parted /dev/$second_disk mkpart primary ext4 8124MiB 100% -s
yes | mkfs.fat -F32 /dev/$first_disk"1"
yes | mdadm --create --verbose --force --run /dev/md0 --level=1 --raid-devices=2 /dev/$first_disk"2" /dev/$second_disk
yes | mkfs.ext4 /dev/md0
mount /dev/md0 /mnt
mkdir -p /mnt/boot/efi
mount /dev/$first_disk"1" /mnt/boot/efi
Installing system
pacstrap -K /mnt base linux linux-firmware base-devel sudo syslog-ng openssh htop git zsh vim lvm2 net-tools wget jq inetutils nano cloud-init parted netplan mdadm
genfstab -U /mnt >> /mnt/etc/fstab
mdadm --detail --scan >> /mnt/etc/mdadm.conf
arch-chroot /mnt mdadm --assemble --scan
arch-chroot /mnt sed -i "/^HOOKS=/ s/block/block mdadm_udev/" /etc/mkinitcpio.conf
arch-chroot /mnt pacman -S grub efibootmgr grub-bios --noconfirm
arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub
arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
arch-chroot /mnt mkinitcpio -p linux
I'd appreciate any insights or suggestions you might have to resolve the GRUB rescue error. Thanks!
Last edited by Melv1n (2023-12-19 14:46:17)
Offline
Did you look at https://wiki.archlinux.org/title/GRUB#RAID and make make the relevant changes in /etc/default/grub?
Hope I'm not sidestepping too much, but I tend to bypass these kind of bootloader-related issues by making an EFISTUB or a UKI, and use a simpler bootloader/manager (reFind, lately Limine) or no bootmanager at all but let the UEFI BIOS just load the Kernel directly. The Kernel images will be in the EFI partition. It makes the setup so much simpler and cleaner. IMHO people are obsessed with installing GRUB (or some other bootloader) and booting it and loading the Kernel images from a RAID array, ZFS and whatnot...
Last edited by Wild Penguin (2023-12-13 14:27:07)
Offline
I have solve this last trouble, no i have news trouble after grub launch archlinux "error: Error: disk mduuid:********************** can't be real root"
Offline
i already have the last trouble, after my grub launch Archlinux i have:
ERROR deivce 'UUID=xxxxxxxxxxxxxxxxxxxxx' no found, Skipping fsck.
mount /new_root : can't find 'UUID=xxxxxxxxxxxxxxxxxxx' on real root
You are now being droppped into an emergecny shell.
Offline
boot archlinux instalation iso from an usb stick . mount your partitions .
post the output of
# fdisk -l
# lsblk -f
Also the contents of boot/grub/grub.cfg & etc/default/grub on your mounted drive.
Use a command like curl -F 'file=@-' 0x0.st < file to upload contents of a file and post the url that command shows on the commandline .
Last edited by Lone_Wolf (2023-12-18 13:39:49)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
[root@sysrescue ~]# mount /dev/md127 /mnt
mount: /mnt: can't read superblock on /dev/md127.
dmesg(1) may have more information after failed mount system call.
is /dev/md127 my raid part ? i'm not found /dev/md0
Offline
sorry here is my log
https://0x0.st/HYVO.txt
Offline
Seems I didn't grasp the full details of your script .
In some parts of your script you use /dev/sda , /dev/sdb , in other parts you use /dev/$first_disk & /dev/$second_disk .
This makes the script hard to read.
Combining the script with the fdisk / lslbk output shows the script has errors.
parted is powerful, but for partitioning fdisk & gdisk give more control over what happens .
parted /dev/$first_disk mkpart primary ext4 8124MiB 100% -s
parted /dev/$second_disk mkpart primary ext4 8124MiB 100% -s
those lines are wrong as you intend to create a raid array from those 2 partitions .
https://wiki.archlinux.org/title/RAID#G … tion_Table clearly states that partitions used for linux raid are marked by having a specific GPT partition GUID.
/dev/sda2 16637952 937701375 921063424 439.2G Linux filesystem
/dev/sdb1 16637952 937701375 921063424 439.2G Linux filesystem
fdisk doesn't recognize them as raid members, so their partition types are wrong.
This can cause all kinds of issues.
yes | mdadm --create --verbose --force --run /dev/md0 --level=1 --raid-devices=2 /dev/$first_disk"2" /dev/$second_disk
yes | mkfs.ext4 /dev/md0
While it should work, naming the array md0 is confusing as mdx is also used for other purposes.
Use something descriptive like "root-on-raid1-array" .
mount /dev/md0 /mnt
You should verify the array is created succesfully before trying to mount it. you should also save the data needed for mdadm.conf somewhere outside of the computer now.
I suggest you adjust the script and start over.
Last edited by Lone_Wolf (2023-12-18 14:26:14)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
update, this now work with the next script.
firstdisk = sda & second sdb it's var in my ansible
mdadm --stop /dev/md0
mdadm --misc --zero-superblock /dev/sda2
mdadm --misc --zero-superblock /dev/sdb1
partprobe
parted /dev/$first_disk mklabel gpt mkpart primary 1mib 300mib -s
parted /dev/$first_disk mkpart primary 300mib 100% -s
parted /dev/$second_disk mklabel gpt mkpart primary 300mib 100% -s
yes | mkfs.fat -F32 /dev/$first_disk"1"
yes | mdadm --create /dev/md0 --level={% if raid_soft == 0 %}0{% else %}1{% endif %} --raid-device=2 /dev/$first_disk"2" /dev/$second_disk"1"
yes | mkfs.ext4 /dev/md0
mount /dev/md0 /mnt
mkdir -p /mnt/boot/efi
mount /dev/$first_disk"1" /mnt/boot/efi
Offline