You are not logged in.
Hi all,
I have recently finished a fresh install of arch in my Len X1 Extreme. I thought this would be a piece of cake since I did it in my old T430s a couple of weeks ago and everything went well. I was wrong however. New laptops seem to be a totally different beast. Anyhow, I have done it the traditional way with a Legacy bootable USB (EUFI disabled). For some reason I could not install grub unless I first created a small 1MB partition and label it as BIOS boot before the actual boot partition (this might be relevant).
At any rate, whenever I try to boot the freshly installed system the screen goes blank after quickly outputting "syslinux no child found". I can boot into the new system if I start from the USB -> start existing OS -> change syslinux to hd1 0. By default is looking to hd0 0.
QUESTION: How can change or tell syslinux to check hd1 instead of hd0 and make that change persistent without first plugging the USB and manually changing to hd1 ?
I have tried to manually change the variables set root in /boot/grub/grub.cfg but it has not worked. I still need the USB and change to hd1 to boot.
I have the feeling that had I not installed the small 1MB partition then the /boot partition would be in hd0 and everything would work correctly. But as I said, in that case grub would not install.
It is difficult for me to write here the output of any commands but I can try if they are not too long ?
Thank for the help !
Last edited by fistrosan (2020-04-05 14:02:34)
Offline
Welcome to the boards
You seem to confuse a few things here. Syslinux is another boot loader, you claim you installed GRUB, which is it? Please post the exact commands you used to do so, which instructions did you follow to set up this system? Maybe also
lsblk -f
tree /boot #Needs the tree packagein [ code ] [ /code ] tags without the spaces (or via a pastebin service) from the live disk after chrooting and mounting the partitions as you expect them.
As for the "1MB partition for some reason": https://wiki.archlinux.org/index.php/GR … structions
Last edited by V1del (2020-04-01 10:53:37)
Offline
Hmmmm thanks for the quick answer. Yes, of course I am mixing things hehehe. Let me see. I never installed syslinux. I think this is the default loader from the USB iso. Ok, so I clearly my question is ill posed because then neither grub (with the USB unplugged) nor syslinux (with the USB plugged) are looking at the right hd. But if that would be the case then my changes in grub.cfg (namely set root ='hd1,gpt2') should have worked. Am I wrong ?
To answer your quesionts: after I chrooted into /mnt I followed the usual chain of commands for grub installation: mkinitcpio -p linux, grub-install --target=i386-pc /dev/nvme0n1, grub-mkconfig -o /boot/grub/grub.cfg
The output of my lsblk -f is (sorry for the formatting but I cannot but and pasted from the other screen) is:
nvme0n1p1
nvme0n1p2 ext4 1.0 <UUID> 393M 11% /boot
nvme0n1p3 ext4 1.0 <UUID> 23G 10% /
nvme0n1p4 ext4 1.0 <UUID> 418G 0% /home
The small 1MB partition is p1 but lsblk -f provides no info about it.
Last edited by fistrosan (2020-04-01 11:05:17)
Offline
Ok sorry it took so long to actually follow your request. Here it:
Output of lsblk (sorry I cannot run it with -f)
Output of tree /boot
Note: these outputs are not after chrooting (otherwise mount points would be /mnt/whatever). Instead these are the outputs after the system is up and running (expect that I cannot get into grub and must start from the USB).
Also, as I said before I have the feeling (probably I am wrong because I do not know enough) that it has to do with how grub.cfg is point to my partition structure. Here are the outputs of
1) lsblk -o NAME,MOUNTPOINT,LABEL,UUID,PTTYPE
2) cat /boot/grub/grub.cfg
As you can see, my grub.cfg does not have any set root=(hdX,gptY) so I figure this is the reason for my problem, but I do not know for sure and if it is, how to solve it.
Thanks !
Welcome to the boards
You seem to confuse a few things here. Syslinux is another boot loader, you claim you installed GRUB, which is it? Please post the exact commands you used to do so, which instructions did you follow to set up this system? Maybe also
lsblk -f tree /boot #Needs the tree packagein [ code ] [ /code ] tags without the spaces (or via a pastebin service) from the live disk after chrooting and mounting the partitions as you expect them.
As for the "1MB partition for some reason": https://wiki.archlinux.org/index.php/GR … structions
Offline
All of that generally looks fine, grub cfg references check out. I do suspect that your system/mainboard does not allow plain BIOS boot from an nvme drive (or maybe it does but double check the boot order that you actually set the nvme drive as the first choice)
Offline
Yeah, I have been trying to boot from the nvme first but I cannot bring it up to the fist place in the BIOS. However, in the boot loader I can select it manually. To no avail because it simply does not start.
At this point I think the best I can try to to make an UEFI installation but I have never done it before. The guy in learnlinux.tv has a couple of tutorials I can follow. Can you give me some advice ? I am guessing the bootable USB with the iso must be also made bootable with EUFI to perform such an installation or can I proceed with my normal USB ? In the former case: can you recommend me a linux utility to perform such an installation. The current bootable USB was done with rufus under windows 10, but this is no longer an option because windows is gone now.
All of that generally looks fine, grub cfg references check out. I do suspect that your system/mainboard does not allow plain BIOS boot from an nvme drive (or maybe it does but double check the boot order that you actually set the nvme drive as the first choice)
Offline
You should be able to boot the current USB in UEFI mode, but yes it should be booted that way.
We'd rather you follow the wiki than youtube videos, issues are much better traceable and referenceable with the wikis background information. And unless we were to watch the same videos you watch we wouldn't be able to help you properly.
You'll have to make some space for a FAT32 formatted ESP partition: https://wiki.archlinux.org/index.php/Pa … partitions
https://wiki.archlinux.org/index.php/EF … _partition if you opt for GRUB anyway, you can keep this fairly small as you'll only need to fit GRUB on it, so it'd say around 50MB will suffice.
Make sure you install efibootmgr into the actual system from the chroot, mount the ESP partition in /efi and install GRUB: https://wiki.archlinux.org/index.php/GRUB#UEFI_systems
The other configs should generally be able to stay the same.
Offline
Ok, I will give it a shot throguh the wiki. Btw, no way to boot the current USB under UEFI. Only works with legacy boot. I will try to create an UEFI bootable USB.
You should be able to boot the current USB in UEFI mode, but yes it should be booted that way.
We'd rather you follow the wiki than youtube videos, issues are much better traceable and referenceable with the wikis background information. And unless we were to watch the same videos you watch we wouldn't be able to help you properly.
You'll have to make some space for a FAT32 formatted ESP partition: https://wiki.archlinux.org/index.php/Pa … partitions
https://wiki.archlinux.org/index.php/EF … _partition if you opt for GRUB anyway, you can keep this fairly small as you'll only need to fit GRUB on it, so it'd say around 50MB will suffice.Make sure you install efibootmgr into the actual system from the chroot, mount the ESP partition in /efi and install GRUB: https://wiki.archlinux.org/index.php/GRUB#UEFI_systems
The other configs should generally be able to stay the same.
Offline
Btw, no way to boot the current USB under UEFI. Only works with legacy boot.
The archlinux iso can boot in legacy OR uefi mode.
If your system has uefi firmware and boots the iso in legacy mode that's usually caused by buggy uefi firmware.
Completely blocking legacy / CSM options in the firmware often helps to 'convince' the firmware the arch iso is uefi-bootable
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
Hmmm I tried to switch the CSM support in the BIOS and would not boot either way. I believe the problem is that my USB stick was in ntfs format.
Anyhow, I reformatted it in FAT32 and copied the iso using dd (basically following https://wiki.archlinux.org/index.php/US … #Using_dd) and then it booted under UEFI without any problems.
I have now finished my installation and after redoing my grub (because like the moron I am I generated a file called "grug.cfg" instead of "grub.cfg") my laptop boots into arch from UEFI !! YAY !!
So, as far as I am concerned I have achieved my goal, which was to install the system. However the original problem, namely why it would not boot in legacy mode with a gpt partition table and a 1MB partition labelled as BIOS boot remains a mystery to me.
Thanks guys for the help ! Cheers !
Btw, no way to boot the current USB under UEFI. Only works with legacy boot.
The archlinux iso can boot in legacy OR uefi mode.
If your system has uefi firmware and boots the iso in legacy mode that's usually caused by buggy uefi firmware.
Completely blocking legacy / CSM options in the firmware often helps to 'convince' the firmware the arch iso is uefi-bootable
Offline
Just to tidy up...
I believe the problem is that my USB stick was in ntfs format.
If you used Rufus then it needs to be set to "DD" mode [sic] to transfer the image correctly.
I reformatted it in FAT32 and copied the iso using dd
If you're using dd(1) (or cp(1)) then any extant filesystems or partitioning will be over-written so that was not necessary.
why it would not boot in legacy mode with a gpt partition table and a 1MB partition labelled as BIOS boot
Non-UEFI booting from a GPT disk is firmware-dependent and won't work on all machines.
EDIT: nonsense removed.
Last edited by Head_on_a_Stick (2020-04-02 21:34:29)
Jin, Jîyan, Azadî
Offline