You are not logged in.
Hello,
I have a new laptop which has Windows 10 installed. It is a HP OmenX laptop with nvidia 1080[mobile] (GP104M), i7-7700HQ, 24GB ram.
I want to have a dual boot with ARCH. So I got a brand new SSD for ARCH alone.
I partitioned it, made my ARCH live-USB, and installed ARCH on this new SSD, EFI mode. Hereby the list of disks.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 1.9G 1 loop /run/archiso/sfs/root-image
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 889.6G 0 part
├─sda2 8:2 0 12.9G 0 part
└─sda3 8:3 0 29G 0 part ####This is the HDD partition for SWAP####
sdb 8:16 1 29.9G 0 disk
├─sdb1 8:17 1 2G 0 part /run/archiso/bootmnt
└─sdb2 8:18 1 64M 0 part
nvme1n1 259:0 0 238.5G 0 disk ####This is the SSD for ARCH####
├─nvme1n1p1 259:1 0 500M 0 part
├─nvme1n1p2 259:2 0 50G 0 part /mnt
└─nvme1n1p3 259:3 0 188G 0 part /mnt/home
nvme0n1 259:4 0 238.5G 0 disk ####This is the SSD for WINDOWS####
├─nvme0n1p1 259:5 0 260M 0 part
├─nvme0n1p2 259:6 0 16M 0 part
├─nvme0n1p3 259:7 0 237.2G 0 part
└─nvme0n1p4 259:8 0 980M 0 part
I had no problems installing ARCH, just in case I will state the most important steps I followed:
- Format the previously prepared partitions in the new SSD, define and mount SWAP
- Mount the root partition and home partition
- pacstrap -i /mnt base base-devel
- pacstrap /mnt grub-bios
- generate the fstab file
- Access my installation using arch-chroot, modified locale.gen, set time and zone, defined hostname
- Installed the efibootmgr following:
mkdir /boot/efi
mount /dev/nvme1n1p1 /boot/efi
grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
mkdir /boot/efi/EFI/BOOT
cp /boot/efi/EFI/GRUB/grubx64.efi /boot/efi/EFI/BOOT/BOOTX64.EFI
- mkinitcpio -p linux #### I did have a couple warnings for missing firmware modules aic94xx and wd719x but I solved it installing the modules from AUR, So now I have No warnings####
At this point I should have been able to access my new installation. It was not the case. When I reboot the system it totally freezes on "Loading Initial Ramdisk..."
So I went on an continued with the installation from arch-chroot saying to myself that maybe it is the drivers for my nvidia card, so I installed: pacman -S nvidia-utils
But no luck.
I am stuck, and don't know what to do to get past this blockade.
I leave here my /boot/grub/grub.cfg
Any ideas? Or any other information needed? I would really appreciate if you could help me.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
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=""
fi
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 [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc
else
search --no-floppy --fs-uuid --set=root 49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_input console
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$
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc
else
search --no-floppy --fs-uuid --set=root 49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc
fi
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc rw quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initramfs-linux.img
}
submenu 'Advanced options for Arch Linux' $menuentry_id_option 'gnulinux-advanced-49f1bdd5-dc66-4e8b-9ddc-340d21fa$
menuentry 'Arch Linux, with Linux linux' --class arch --class gnu-linux --class gnu --class os $menuentry_$
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc
else
search --no-floppy --fs-uuid --set=root 49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc
fi
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc rw quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initramfs-linux.img
}
menuentry 'Arch Linux, with Linux linux (fallback initramfs)' --class arch --class gnu-linux --class gnu -$
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc
else
search --no-floppy --fs-uuid --set=root 49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc
fi
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc rw quiet
echo 'Loading initial ramdisk ...'
initrd /boot/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/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}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Last edited by gudnait (2019-01-11 17:49:17)
Offline
You should boot from the installation image and arch-chroot into the installation.
Check
efibootmgr -v
I presume you have a mess to load the rootfs.
Additionally you may look into the journal, but I doubt the systemd could reach that point.
do it good first, it will be faster than do it twice the saint
Offline
Hi TheSaint,
Thank you for the fast reply,
I did that and got:
# efibootmgr -v
BootCurrent: 0007
Timeout: 0 seconds
BootOrder: 0000,0002,0001,0005,0007,0006
Boot0000* Windows Boot Manager HD(1,GPT,621f498e-f5e7-4492-a046-e8e792a5445d,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...&................
Boot0001* Solid State Disk PciRoot(0x0)/Pci(0x1d,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-25-38-B1-81-B3-0E-F9)/HD(1,GPT,621f498e-f5e7-4492-a046-e8e792a5445d,0x800,0x82000)..BO
Boot0002* GRUB HD(1,GPT,cdbe7b05-8d97-4125-9e15-e85a3cb5c324,0x800,0xfa000)/File(\EFI\GRUB\grubx64.efi)
Boot0005* Solid State Disk PciRoot(0x0)/Pci(0x1b,0x0)/Pci(0x0,0x0)/NVMe(0x1,00-1B-44-8B-44-46-55-C2)/HD(1,GPT,cdbe7b05-8d97-4125-9e15-e85a3cb5c324,0x800,0xfa000)..BO
Boot0006* USB Drive (UEFI) - Samsung Flash Drive 1100 PciRoot(0x0)/Pci(0x14,0x0)/USB(18,0)/CDROM(1,0xe0,0xf9410)..BO
Boot0007* USB Drive (UEFI) - Samsung Flash Drive 1100 PciRoot(0x0)/Pci(0x14,0x0)/USB(18,0)/HD(1,MBR,0x314e3728,0xe0,0x20000)..BO
Don't mind the boot-order for the time being, that is not the problem. I do manage to enter the GRUB (where I don't have the windows10 option yet.) Once I select the ARCHLinux option in the GRUB, I get completely stuck on "Loading Initial Ramdisk..." no blinking and nothing works.
Indeed I don't think the systemd is lunched.
Offline
OK, the figure is that the BIOS found grub. But grub don't find a kernel or the initramfs.
Can we see how is organized your /boot (aka ESP) ?
do it good first, it will be faster than do it twice the saint
Offline
Hello, TheSaint,
I am sorry to have taken a long time to answer, I was away camping in the nature...
So, Here how my /boot is organized:
. mounted the partitions
. arch-chrooted in and went to /boot
boot]# ls
efi grub initramfs-linux-fallback.img initramfs-linux.img vmlinuz-linux
Is it ok? any ideas?
What does (aka ESP) mean? If I speak Spanish?
Offline
ESP
There could be an issue:
You have the files into the /boot directory, but they should be into a partition, which should be mounted later, as per /etc/fstab description.
So to have the whole figure of your system, please do a chroot again and report:
$ cat /etc/fstab
So if you have the kernel into the wrong place, that might cause a kernel panic. Because the updates should write the kernel into the ESP, which is the only partition that the BIOS find at boot time. Later the kernel wants to find its corresponding modules after mounting the rootfs.
Last edited by TheSaint (2018-09-25 01:52:02)
do it good first, it will be faster than do it twice the saint
Offline
Hello,
Ok, Thanks, now I understand what ESP is
I hereby report what you asked:
# cat /etc/fstab
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/nvme1n1p2
UUID=49f1bdd5-dc66-4e8b-9ddc-340d21fad8fc / ext4 rw,relatime 0 1
# /dev/nvme1n1p3
UUID=a0515922-e6f1-4d0d-ad28-82e09ce83ff0 /home ext4 rw,relatime 0 2
# /dev/sda3
UUID=9cdb85f4-d881-4fdb-a1ac-730faa378690 none swap defaults,pri=-2 0 0
So according to what you say, there should be a 4th partition detected probably the 500MB fat32 partiton I created? /dev/nvme1n1p1?
Offline
Your output should look more like this example. Please not the /boot/efi partition.
[c00ter@baked ~]$ cat /etc/fstab
# /dev/sda2 UUID=e75fcfdc-832a-43e4-8642-5e13a082fcb6
PARTUUID=8444227d-5e39-4339-a1f3-d936d94b2a7a / ext4 rw,noatime,nobarrier,commit=60 0 1
# /dev/sda1 UUID=CE19-B1B1
PARTUUID=6ddef339-84c4-4408-9744-e36d4cb45d86 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/sda3 UUID=bf542706-f7d3-479e-a9b3-a2601ce2f540
PARTUUID=c2f04770-505d-4325-a1f6-012a9eca9049 /home ext4 rw,noatime,nobarrier,commit=60 0 2
/swapfile none swap defaults,pri=-2 0 0
[c00ter@baked ~]$ cd /boot
[c00ter@baked boot]$ ls
efi grub initramfs-linux-fallback.img initramfs-linux.img initramfs-linux-lts-fallback.img initramfs-linux-lts.img intel-ucode.img vmlinuz-linux vmlinuz-linux-lts
regards
UNIX was not designed to stop you from doing stupid things, because that would also stop you from doing clever things. -- Doug Gwyn
Offline
Hello c00ter,
Thanks for the response,
How do I get from what I have to what you have? should I edit manually? Is there a command?
plus I see I am missing some files in /boot. are those important?
Offline
c00ter gave the direction to settle your ESP into /boot, which is should be the default. /boot/efi is pretty uncommon. Even systemd-boot is working with /boot as default.
Then when you update or install the linux package, it will go into ESP. So the BIOS and the boot loader will know how to proceed the booting process.
do it good first, it will be faster than do it twice the saint
Offline
Hi TheSaint and C00ter,
I regret to tell you that I am too much of a noob to know how to do what you tell me.
I understand now that there is a problem with the ESP (I read the link you sent me and the ArchWiki about ESP). I created a 500MB GPT partition but probably missing the esp flag (i will put it as soon as I get home). When installing ARCH I mounted it to /boot/efi and installed the bootloader. beyond that I am lost.
I know that I am missing a partition that should be recognized by fstab, and that the devices are recognized inside the fstab also by the PARTUUID that I am missing in mine. How can I fix this?
could you please help me with that?
Thanks a lot!
Offline
The /boot partition, which should be the ESP, it is necessary to be mounted just for kernel updates and booting related issues. Because new kernel will go in there and the system expect to find the modules for the booted kernel.
So, the boot process is that BIOS knows about ESP, will find the program recorded in the NVRAM an run it, which should be the boot loader. The boot loader (might be the kernel itself) boots a kernel, then the kernel will find the fstab and mount the system and change root over it. As it changed root it will look into the /usr/lib/modules for the modules which are mostly necessary to handle with the system hardware.
I hope you have a better idea about booting by EFI.
do it good first, it will be faster than do it twice the saint
Offline
Hello again,
I took my time to read and understand the guides you gave me. It took a really long time, I am sorry.
So I still have the same problem. I am unable to to boot to Arch, still stuck on "Loading initial Ramdisk..."
What I did was to format all and reinstall step by step.
1. I formated the partitions adding the "esp" and "boot" labels to the 500MB made sure that it had the "EFI System" type, the other partitions were formated ext4 made sure that it had the "Linux filesystem" type
2. I mounted all partitions and installed ARCH and generated the fstab
mount /dev/nvme1n1p1 /mnt/boot
mount /dev/nvme1n1p2 /mnt
mount /dev/nvme1n1p3 /mnt/home
pacstrap -i /mnt base base-devel
genfstab -U -p /mnt >> /mnt/etc/fstab
#At this point my fstab only takes into consideration the UUID like the one I had before. So I used the
blkid
command to know the PARTUUID and manually modified the fstab to be exactly like the one cOOter posted
so it looks like:
# /dev/nvme1n1p2 UUID=619556a1-014b-4bfc-bd33-5993d21fb451
PARTUUID=9dce9bc8-bcf2-4572-9c16-598045c9923f / ext4 rw,relatime 0 1
# /dev/nvme1n1p3 UUID=69bca618-239d-45af-8895-0701fc4c0645
PARTUUID=736b8587-ab37-4dee-a9cd-cce6e2a4e6ea /home ext4 rw,relatime 0 2
# /dev/nvme1n1p1 UUID=41F4-FAC7
PARTUUID=cdbe7b05-8d97-4125-9e15-e85a3cb5c324 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
# /dev/sda3 LABEL=SWAP UUID=8c410300-fbdf-4400-9775-b4989cc458d1
PARTUUID=a15fd4f5-88eb-4b15-9b3d-7be0ee43efb5 none swap defaults,pri=-2 0 0
3. Then I accessed my installation to configure: time, location, hostname, password, user
4. Then I installed the boot manager, so still arch-chrooted I ran
pacman -S grub efibootmgr dosfstools os-prober mtools
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -p linux
There were in total 3 warnings:
. while mkinitcpio -p linux, I got 2 warnings for missing firmware modules for aic94xx and wd719x. (once before I installed both modules and made no difference)
. while grub-mkconfig -o /boot/grub/grub.cfg, I got 1 warning: failed to connect to lvmetad falling back to device scanning.
It all seem ok. But still freezes on "loading initial Ramdisk"
Any ideas?
Is there a way to know why the bootloader isn' t finding what it should??
Offline
You should restart the installation image and chroot into the installation.
Try to remake the grub.cfg and post it here.
The mkinicpio always issue those two warning, which are mostly harmless.
Another chance it might be to switch to another boot loader, such as systemd-boot.
do it good first, it will be faster than do it twice the saint
Offline
mount /dev/nvme1n1p1 /mnt/boot
mount /dev/nvme1n1p2 /mnt
mount /dev/nvme1n1p3 /mnt/home
Those are mounted out of order. Make sure you mount /mnt first, then the other two.
Offline
Adding
$ tree /boot
after chroot may help.
do it good first, it will be faster than do it twice the saint
Offline
After a long battle of learning, reading, I could finally install Arch in my laptop.
What I did was: let it rest for a month, then starting from 0 once again taking into consideration all what I learned here.
I mounted in order the disks,
used /tree /boot to be sure of the structure
Used all the learned concepts
Followed (as before) the installation guide from Arch
And this time it was a success.
I presume that the pickle was:
- a bad turn when installing and configuring Grub, As now I knew exactly what I was doing (before it wasn't really the case.)
I thank a lot @TheSaint @circleface @c00ter for all the help and time invested, i assure you it was really useful!! THANK YOU VERY MUCH!!!
See you around!
Offline
Glad to hear, have fun on Arch.
Please remember to mark the thread as [SOLVED] by editing the title in your first post (you might have to shorten it a bit): https://wiki.archlinux.org/index.php/Co … ow_to_post
Offline