this post was submitted on 30 Sep 2024
27 points (96.6% liked)

Linux

48306 readers
716 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hi everyone,

I have a finely tuned Fedora 40 image that I cloned using Clonezilla (see: https://sh.itjust.works/post/25762756)

I wanted to deploy it on my old Acer Aspire 5737z but it won’t boot. It’s just displaying a — on a black screen for hours.

I’m not so knowledgeable but I guess it means I would have to reinstall the GRUB or whatever.

I’ve booted into my Fedora Live USB and tried the lsblk command people were talking about on the web (I don’t understand the terminal). Here's the result.

I think the SDA disk is the one I would like to boot from.

Can anyone help me understand what I have to do 😇🙏

you are viewing a single comment's thread
view the rest of the comments
[–] alphapuggle 2 points 1 month ago (1 children)

I'm doing my morning scroll before I start my day, so I can't delve too deep, but this is the article I always reference when I have to do repairs

https://askubuntu.com/a/831241

#1 thing I noticed in your image is that lsblk only shows you partitions, and doesn't mount them. You probably want /dev/sda3 mounted at /mnt

The only thing from the article you want to modify is using mount -B /sys/firmware/efi/efivars /mnt/sys/efi/efivars, I believe the functionality changed since that article was written and that's what worked for me

Additionally, if you drive is formatted as btrfs instead of ext4, once you mount your drive your root will most likely be at /mnt/admin or similar. Mount subdirectories to that folder instead of /mnt

If you have questions lmk and I'll get back to you at some point today

[–] [email protected] 2 points 1 month ago (1 children)

Thanks for the help but I don’t understand anything from the message on askubuntu.

I’ve tried the sudo mount/dev/sda3 /mnt part though..

Sorry for my lack of terminal skills

[–] alphapuggle 1 points 1 month ago* (last edited 1 month ago) (1 children)

That's alright, I'll do my best to walk you through it.

Your drive contains multiple partitions (/dev/sda1 through /dev/sda3).
One of these drives is going to be your EFI partition. This is what your system can read before linux boots, your BIOS can't understand ext4 / btrfs / etc, but it can understand fat32.
If you run lsblk -no FSTYPE /dev/sda1 it should return vfat if that's your EFI partition. That's what we're going to mount to /mnt/boot/efi

I'm assuming that /dev/sda3 is your data partition, e.g. where your linux install is. You can find the filesystem format the same way as your EFI partition. Edit: After determining which partition is which, you're going to want to mount the root partition, and then the EFI partition
mount /dev/sda3 /mnt
mount /dev/sda1 /mnt/boot/efi

Unix systems have theology of "everything is a file", all devices and system interfaces are mounted as files. As such, to be able to properly chroot into an offline install, we need to make binds from our running system to the offline system. That's what's achieved by running for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
This is just a simple loop that mounts /dev, /dev/pts, /proc, /sys, and /run to your offline install. You're going to want to either add /sys/firmware/efi/efivars to that list, or mount it (with -B, which is shorthand for --bind, not a normal mount).

Once you've done this, you should be able to successfully chroot into /mnt (or /mnt/root if running btrfs)
At this point, you should be able to run your grub repair commands.

[–] [email protected] 2 points 1 month ago (1 children)

Here is what I'm getting after running through the steps you kindly gave me. The second part is the part where I'm probably not doing right..

[–] alphapuggle 1 points 1 month ago (1 children)

Apologies, I think I got a bit ahead of myself in the description.
Once you've determined which partition is which (in your case, /dev/sda1 does appear to be the EFI partition, and /dev/sda3 appears to be your root partition), you need to mount them in this order

mount /dev/sda3 /mnt
mount /dev/sda1 /mnt/boot/efi

[–] [email protected] 1 points 1 month ago (1 children)
[–] alphapuggle 1 points 1 month ago (2 children)

Could you send me the output of lsblk -no FSTYPE /dev/sda3 and ll /mnt?

[–] [email protected] 2 points 1 month ago (1 children)

Hi again. Here is what it gave me:

[–] alphapuggle 1 points 1 month ago (1 children)

Since you're using btrfs, there is likely another subfolder under /mnt. ll /mnt will tell you this, but the drive isn't still mounted from the other day. When you're mounting the EFI partition, you're going to want to mount it to that folder, and not /mnt itself (/mnt/root/boot/efi, instead of /mnt/boot/efi) same for the binds (/dev, /proc, /run, etc)

[–] [email protected] 2 points 1 month ago (1 children)

Here is what I'm getting.

I'm almost ready to give up on my dream of establishing a perfectly tuned version of Fedora that I can deploy on all my computer just through Clonezilla..

[–] alphapuggle 1 points 1 month ago (1 children)

Interesting, both of my F40 installs with btrfs only have a root folder, but it looks like yours has created separate ones for /, /home, and /boot. run ll /mnt/boot; ll /mnt/home; ll /mnt/root so I can take a quick look at where things are located. My best guess is that sda1 gets mounted to /mnt/boot, while everything else (/dev, /sys, etc) gets mounted to /mnt/root

[–] [email protected] 2 points 1 month ago (1 children)

Here's what I'm getting:

I don't think I've set up anything particular, so I guess my install is different than yours because Fedora changed something. But clearly that change doesn't help me;-)

[–] alphapuggle 1 points 1 month ago

It appears that once-upon-a-time, fedora's BTRFS would create separate subvolumes for /home, /boot, and /. Looking at this list, I don't think that the boot subvolume is where all of the boot files are, just the grub2 configs. I'm assuming your kernel and initramfs are stored in /mnt/root/boot. Is there an efi folder in /mnt/root/boot? It's possible that the original install on your surface go 1 wasn't installed UEFI, and as such the folder doesn't exist (or, it's there but in caps)

If you could send a screenshot of ll /mnt/root/boot too that'd be great

For context, my /boot has the grub2 folder that exists in your boot subvolume, as well everything else needed for boot

if your system wasn't installed UEFI, you're likely missing the efi folder. If this is the case, nbd, we can generate it