Boot issue / initramfs display error
Lee
-
drom -
drom -
Hello,
I wanted to dive into the deep end of Linux about a month ago. And I installed Zorin OS on my hard drive. Everything was fine until this morning.
Since this morning, my screen displays the following message:
So wanting to find my solution myself and not wanting to lose my data, I read a bit on the topic and found that the problem is that
1/I shouldn't have forced a shutdown (3s+ press) (but what to do when my computer freezes? And also why is it freezing suddenly?)
2/ it's a boot problem if I can express it that way. However, I read that I could try the command
Fortunately, I have my bootable USB stick that allows me to try Zorin OS before installing it/installing it.
I also read that from my USB stick I could repair my OS with the command
Except that to do things properly, I had encrypted my hard drive (an option that Zorin offers / I don't know if all Linux OS offer it) and I think (I'm not sure since I'm new to Linux) that this may be blocking among other things.
I tried this command
I also tried the command
So I finally opted for boot repair by following the commands to install and update it // I ran it and it gave me a report which is here. http://paste.ubuntu.com/p/8x3pSzjQSj/
So two questions: according to the boot repair report, is my problem resolved? If not, what else can I do please, knowing that I would like to avoid losing my data?
Configuration: Linux / Firefox 73.0
I wanted to dive into the deep end of Linux about a month ago. And I installed Zorin OS on my hard drive. Everything was fine until this morning.
Since this morning, my screen displays the following message:
BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.2) built-in shell a(ash)
Enter 'help' for a list of built-in commands.
(initramfs)
So wanting to find my solution myself and not wanting to lose my data, I read a bit on the topic and found that the problem is that
1/I shouldn't have forced a shutdown (3s+ press) (but what to do when my computer freezes? And also why is it freezing suddenly?)
2/ it's a boot problem if I can express it that way. However, I read that I could try the command
fsck. Except that it doesn't appear when I type
helpat startup.
Fortunately, I have my bootable USB stick that allows me to try Zorin OS before installing it/installing it.
I also read that from my USB stick I could repair my OS with the command
fsck -y /dev/sdb1(I concluded that it was
sdbbecause
sdaseems to be the bootable USB stick)
Except that to do things properly, I had encrypted my hard drive (an option that Zorin offers / I don't know if all Linux OS offer it) and I think (I'm not sure since I'm new to Linux) that this may be blocking among other things.
I tried this command
sudo fdisk -l mountto try a repair or even a reinstallation without losing data if possible, but it yields nothing.
I also tried the command
sudo fsck /dev/sdb1, again with no success.
So I finally opted for boot repair by following the commands to install and update it // I ran it and it gave me a report which is here. http://paste.ubuntu.com/p/8x3pSzjQSj/
So two questions: according to the boot repair report, is my problem resolved? If not, what else can I do please, knowing that I would like to avoid losing my data?
Configuration: Linux / Firefox 73.0
2 answers
-
Hello,
Several elements of response.
Explanation of the error
Regarding the busybox error: grub is the menu that allows you to choose which system (and for Linux, with which kernels and what options) to start. When grub fails, you typically see a "busybox" terminal. It can fail for multiple reasons (typically, a missing hard drive, a kernel not found, partitions inconsistent with its configuration, etc).
In practice, busybox doesn't allow for much. Most of the time, you need to go through a repair using a bootable USB stick. From there, you need to launch a Linux that allows you to start a "real" terminal from which you can perform the repair. Basically, a Linux installation disk (USB or CD) is sufficient. But this is not straightforward for beginners.
That's why boot-repair was created. It's a bootable Linux on a USB stick, but it has been customized for beginners to perform repairs. So you're on the right track :)
Next, I don't know who told you to run afsck
(filesystem check), but I seriously doubt that it will solve your issue. In Windows terminology, this corresponds to a scandisk, but that's not what will fix your grub configuration to make it consistent with your hard drives. Commands likesudo update-grub
, run from your "chrooted" Linux, make much more sense.
Some prerequisites
So what is achroot
.
In Linux, there is no concept of drives like in Windows. No C: or anything else. There is a filesystem tree, with the root at/
that contains everything. The closest notion is what is called "devices" in Linux (see /dev). In modern Linux systems, disks typically follow this naming convention:-
/dev/sda
identifies the first disk (USB, hard drive, etc.) -
/dev/sdb
identifies the second disk (USB, hard drive, etc.) -
/dev/sda1
identifies the first partition of disk sda. -
/dev/md0
designates a RAID disk
The devices themselves are not directly readable. You need to mount a device to see the contents of the partition it represents. This is what themount
command does.
In particular, some of these devices will be mounted (like Russian dolls) to form the content exposed in the/
hierarchy. Typically:-
/
contains (if we omit the following elements) the partition of the Linux system you have booted into -
/home
contains the Linux partition housing your documents - any peripherals, Windows partitions, remote shares, etc., are generally mounted in a subfolder of
/media
or/mnt
.
In short, since/
corresponds to the Linux system you have booted into, it does not hold the same meaning when booting from a Linux USB or from the Linux on your hard drive./
corresponds to the system from which you booted. However, if you boot into your Linux USB, you can mount the hard disk Linux partition into a directory (let's say/media/linux
).
Thus, if you boot from your Linux USB and mount your hard disk Linux into/media/linux
, the grub configuration at that point will be in/media/linux/etc/default/grub
and not/etc/default/grub
.
On the other hand, Linux allows for "moving"/
(under certain conditions), in my example, at/media/linux
. This is called doing achroot
. So if you ensure that everything necessary is present in this directory and you chroot into it, then everything will take place in this terminal "as if" you had booted into the hard drive's Linux. And from there, in particular, you can reinstall/reconfigure whatever is broken.
Repairing grub (under normal circumstances)
The main part of the procedure indicated in boot-repair consists of performing thischroot
. Since you managed to create a boot repair report, it means you got it right.
Ideally, you then just need to runsudo update-grub
in the chrooted environment, which should look something like this:
(mando@aldur) (~) $ sudo update-grub
[sudo] mando's password:
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-5.4.0-4-amd64
Found initrd image: /boot/initrd.img-5.4.0-4-amd64
Found linux image: /boot/vmlinuz-5.4.0-3-amd64
Found initrd image: /boot/initrd.img-5.4.0-3-amd64
Found linux image: /boot/vmlinuz-5.3.0-3-amd64
Found initrd image: /boot/initrd.img-5.3.0-3-amd64
Found linux image: /boot/vmlinuz-4.19.0-6-amd64
Found initrd image: /boot/initrd.img-4.19.0-6-amd64
Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
done
First question, what happens in your case? (copy and paste the result)
In your case
Looking at your boot repair report, you have some strange errors:
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
ERROR: pdc: reading /dev/dm-0[Input/output error]
That's not good, it means that a RAID (software?) disk is unstable. I don't know if you have played around with RAID configurations, but this kind of error is a bad sign.
Furthermore, you mentioned that you encrypted your disk. This means thatmount
alone is not enough, you first need to decrypt the partition. The idea remains the same but it complicates things slightly because there are LVM and LUKS involved, and probably RAID on top of it...
Method 1: the simplest
You reinstall, you forget about encryption and RAID unless you know what you're doing.
Method 2: if you have the courage
Assumed partitioning (to adapt in your case)-
/dev/sda1
is/boot
-
/dev/sda5
is an encrypted with LUKS containing a LVM partition, where reside/
and the swap.
Step 1: Mount the system
sudo -s mkdir -p /mnt/linux cryptsetup luksOpen /dev/sda5 sda5_crypt # This creates /dev/mapper/sda5_crypt # Enter the LUKS password apt-get install lvm2 modprobe dm-mod vgchange -ay lvscan # At this point we should see /dev/Ubuntu/{root, swap_1} ACTIVE
Now we will mount everything.
mount /dev/mapper/Ubuntu-root /mnt/linux mount /dev/sda1 /mnt/linux/boot mount --bind /dev /mnt/linux/dev chroot /mnt/linux mount -t proc proc /proc mount -t sysfs sys /sys mount -t devpts devpts /dev/pts /etc/init.d/lvm2 start /etc/init.d/lvm2-lvmetad start /etc/init.d/lvm2-lvmpolld start
From there we can runupdate-grub
(phew).
Step 2: Repairgrub
We check thecryptsetup
settings based on this tutorial.
1) Verify that the line regardingsda5
is present in/etc/crypttab
(you can open this file withnano /etc/crypttab
, ctrl x to save and exit).
Example: (note that these values depend on your system):
sda5_crypt UUID=8af9859f-9922-4ed3-9f9b-bc31f0c9aeb4 none luks,retry=1,lvm=Ubuntu
storage_crypt UUID=f4e689ec-fda1-450e-8787-61c081c0bee7 none luks
2) Also check/etc/initramfs-tools/conf.d/cryptroot
.
Example: (note that these values depend on your system):
CRYPTROOT=target=sda5_crypt,source=/dev/disk/by-uuid/8af9859f-9922-4ed3-9f9b-bc31f0c9aeb4
3) If everything is referenced, then you can run:
update-initramfs -k all -c
4) Now, check/etc/default/grub
.
Example: (note that these values depend on your system):
GRUB_CMDLINE_LINUX="cryptopts=target=sda5_crypt,source=/dev/disk/by-uuid/8af9859f-9922-4ed3-9f9b-bc31f0c9aeb4,lvm=Ubuntu"
5) Finally, reinstall grub
update-grub
6) ... and exit properly
/etc/init.d/lvm2 stop
/etc/init.d/lvm2-lvmetad stop
/etc/init.d/lvm2-lvmpolld stop
umount /sys
umount /proc
umount /dev/pts
exit
umount /mnt/linux/boot
umount /mnt/linux/dev
umount /mnt/linux
reboot
Good luck :-) -