LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   nvme booting on legacy mobo? (https://www.linuxquestions.org/questions/linux-hardware-18/nvme-booting-on-legacy-mobo-4175697413/)

babag 07-07-2021 09:08 PM

nvme booting on legacy mobo?
 
i see a lot online about being able to boot from an nvme ssd on a legacy mobo by things like using a boot manager and/or moving boot elements around. i've not been able to get any of this to work as yet.

my system is a ga-x79-up4 mobo running ubuntu studio w/kde. system drive is a sata 2.5" ssd. i have a samsung ssd 980 nvme mounted on a pcie card as the mobo has no m.2 slots. it currently has a fresh manjaro install on it as a test. when i installed manjaro, i removed the main system drive (ubuntu studio) so as not to do anything bad to it. the manjaro install usb flash drive found the nvme drive and installed to it without issue, as near as i can tell. the ubuntu studio system is also able to see and use the nvme drive. i just can't boot from it.

when i reinsert my ubuntu studio drive and boot into ubuntu studio, i am able to run grub-mkconfig and it does find the nvme drive and insert it into the grub menu. when i reboot, however, while the grub menu does show manjaro, it does not boot, displaying a message that a kernel must be loaded first. i've tried every combination of uefi and legacy boot settings i can think of in the bios.

i can only guess that this is pointing to the full ubuntu system's ability to find and use the nvme drive but the boot system's inability. in other words, when the full system is up, there is enough resource, like drivers, to find and use the nvme but, during the boot process, when there are more meager resources available to the system, the nvme cannot be utilized.

admittedly, i know almost nothing about how all of this works but am seeing enough online about people successfully booting such a system to think that, if i can just find the right path to navigate a setup, i could get this to work on my system as well.

any help is much appreciated.
babag

(btw, i can't just upgrade right now as changing resources like a mobo would cascade into having to upgrade a lot of other components as well.)

mrmazda 07-07-2021 11:26 PM

Quote:

Originally Posted by babag (Post 6264860)
system drive is a sata 2.5" ssd.

What precisely does this mean? How is it partitioned? Is any of your Manjaro installation using it?
Quote:

i have a samsung ssd 980 nvme mounted on a pcie card as the mobo has no m.2 slots.
Just because Manjaro or *buntu can find it doesn't mean they can boot from it. Without firmware (BIOS/UEFI) support, NVME is simply not bootable. To use NVME as a system drive, some legacy drive must be present from which to initiate boot.

obobskivich 07-08-2021 02:10 AM

+1 to mrmazda's response - a lot of the stuff you mention seeing online likely relies on either a persistent USB device holding a bootloader or booting from a SATA disk as you've already tried (and using the NVMe device as additional storage, like putting /home on it or getting adventerous with symlinks). There would be no way to have *only* the NVMe device in that board and boot from it without BIOS/UEFI support, and I'm guessing that's not available for that specific board. I've read about modified BIOSes for X58-based boards to toy with NVMe, so perhaps such exists for X79 (which is newer), but I'd proceed very cautiously with modified firmware (well, any firmware flash really) because the potential to brick the hardware is real (even if everything is 'on the level' its still possible to get a bad flash (say, for example, you experience a power outage)), and then you're in that 'cascade replacement' situation.

Personally I would probably just integrate the NVMe device as additional storage - you can install applications and hold data on it all the same once the machine is booted, and I can't imagine there would be any significantly measurable difference in 'boot time' (such an awful metric) between the SATA SSD and the NVMe device.

babag 07-08-2021 01:28 PM

thanks to you both for taking the time to try to help. much appreciated.

Quote:

Originally Posted by mrmazda (Post 6264878)
What precisely does this mean? How is it partitioned? Is any of your Manjaro installation using it?

CT1000BX500SSD1
https://www.newegg.com/crucial-bx500...82E16820156231

this drive only has ubuntu studio on it, as a self contained system, including my storage and /home. i normally run with only this drive in the system.

Quote:

To use NVME as a system drive, some legacy drive must be present from which to initiate boot.
yes. thanks. this is exactly what i'm trying to figure out how to do. you are correct that the info i've seen online involves using a legacy drive to initiate boot but i haven't been able to figure out how to do that. tried using the above drive as that legacy drive to boot and, while it does have the manjaro nvme in the grub boot options, it returns the error about needing to load the kernel first.

thanks again,
babag

mrmazda 07-08-2021 02:27 PM

Quote:

Originally Posted by babag (Post 6265023)
this drive only has ubuntu studio on it, as a self contained system, including my storage and /home. i normally run with only this drive in the system.

That's not enough information. Please provide input/output from installed Ubuntu boot from:
Code:

sudo parted -l
cat /etc/default/grub
pastebinit /boot/grub/grub.cfg

Most likely you're going to need to do a little repartitioning of your SATA SSD before Manjaro on NVME can be started.

lovemeslk 07-08-2021 03:36 PM

Quote:

i am able to run grub-mkconfig and it does find the nvme drive and insert it into the grub menu
That means Bios and your PCI are seen. Your PCI3 motherboard should handle this.
As far as.
If the device when partitioned. Right you partitoned it RIGHT! then you set it bootable right.
Quote:

fdisk -l
and output
Quote:

Disk /dev/nvme0n1: 953.87 GiB, 1024209543168 bytes, 2000409264 sectors
Then the command
Quote:

blkid
output on mine again
Code:

/dev/nvme0n1p1: UUID="D7D2-C96F" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="bb6dc2f8-6a26-eb40-9a15-9cd8d0d218dc" <-- ufi partiton
/dev/nvme0n1p2: UUID="3f76a8a7-795c-42f3-b1ba-d273265c2e05" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="e4d9aca6-637b-f64c-b4e6-7eb468abc421 ext4 partition

you may want to open "gparted" and
and partion it and set a bootable partition. Then format it to your favorite files system.
Trust me ubuntu will see it wipe it and do what you want.

Quote:

installed manjaro, I removed the main system drive (ubuntu studio) so as not to do anything bad to it.
Well you may need that other drive and just add the the nvme to your grub manually.
Until you figure out whats going on in your boot configuration.
last but not least set to auto on legacy boot.

computersavvy 07-08-2021 09:01 PM

Reading your problem it seems clear the bios is not able to access the nvme device. Whether that is the card it is on or the nvme device itself, legacy bios was ancient when nvme devices were developed. I think you are stuck unless you can get a 3rd party bootloader that is able to load the drivers needed to access the nvme before it starts to load the OS.

tofino_surfer 07-08-2021 09:07 PM

Quote:

To use NVME as a system drive, some legacy drive must be present from which to initiate boot.

yes. thanks. this is exactly what i'm trying to figure out how to do. you are correct that the info i've seen online involves using a legacy drive to initiate boot but i haven't been able to figure out how to do that. tried using the above drive as that legacy drive to boot and, while it does have the manjaro nvme in the grub boot options, it returns the error about needing to load the kernel first.
You need to put the Manjaro kernel and initramfs on the SATA SSD and create a manual grub entry for it. The / root partition will remain on the NVMe drive. The grub entry should refer to / on the NVMEe drive.

Quote:

the manjaro install usb flash drive found the nvme drive and installed to it without issue, as near as i can tell.
You already have a Manjaro installation on the NVMEe drive. Since you can't directly boot from it you need to copy the kernel and initramfs to the /boot partition on the SATA SSD and create the aforementioned grub entry which refers to / on the NVMEe drive. You may simply be able to use the UUID of the NVMe / partition. If the Manjaro kernel and initramfs succesfully scans all of the hardware at boot it will create a symlink for the UUID of /dev/nvme0n1p2. Alternatively you could just specify /dev/nvme0n1p2 as root in grub.cfg.

babag 07-08-2021 10:39 PM

wow. lot to chew over here but it all sounds promising. will take me a little time to absorb all of this. will post tomorrow with the various bits of info requested.

thank you all so much,
babag

babag 07-09-2021 01:27 PM

would this work? can i try booting from a usb stick instead of from the ubuntu studio ssd? i'm a little nervous about modifying my working system drive and the things that i'm seeing here seem like they might be transferable to another bootable device that might be safer for my existing system. i'm thinking i'd have to copy the /boot dirctory from either the ubuntu studio drive or the manjaro drive to the stick and then follow the instructions i've been getting so far. now for the questions about those instructions.

@mrmazda, sudo fdisk -l = :
Code:

Disk /dev/nvme0n1: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 1TB                   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: 6A1E0F35-7A7F-134C-B3D0-1ADDBACE5F7D

Device          Start        End    Sectors  Size Type
/dev/nvme0n1p1  4096    618495    614400  300M EFI System
/dev/nvme0n1p2 618496 1953520064 1952901569 931.2G Linux filesystem


Disk /dev/sda: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: CT1000BX500SSD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x857ec7fb

Device    Boot  Start        End    Sectors  Size Id Type
/dev/sda1  *      2048    1050623    1048576  512M  b W95 FAT32
/dev/sda2      1052670 1953523711 1952471042  931G  5 Extended
/dev/sda5      1052672 1953523711 1952471040  931G 83 Linux

cat /etc/default/grub =
Code:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#  info -f grub -n 'Simple configuration'

GRUB_DEFAULT="0"
GRUB_TIMEOUT_STYLE="menu"
GRUB_TIMEOUT="5"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL="console"

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE="640x480"

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID="true"

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

pastebinit /boot/grub/grub.cfg =
Code:

https://paste.ubuntu.com/p/Pz9jdrXS6s/
Quote:

Most likely you're going to need to do a little repartitioning of your SATA SSD before Manjaro on NVME can be started.
this is why i'm wondering about trying a usb stick, so i don't do something stoopid to my main system. thanks.

@lovemeslk, sudo blkid /dev/nvme0n1p(1 and 2) =
Code:

/dev/nvme0n1p1: LABEL_FATBOOT="NO_LABEL" LABEL="NO_LABEL" UUID="EC2C-395E" TYPE="vfat" PARTUUID="846a2397-41ff-4c45-b384-7e54ce80f160"
/dev/nvme0n1p2: UUID="b1b3c6c8-08a0-45e8-8dd2-5ceab5ef5f07" TYPE="ext4" PARTUUID="9da67232-b573-284a-bd01-ae41d2815c33"

Quote:

Well you may need that other drive and just add the the nvme to your grub manually.
yes. hoping i can do this with usbstick instead of ubuntu studio drive. thanks.

@tofino_surfer, thanks.
Quote:

You need to put the Manjaro kernel and initramfs on the SATA SSD and create a manual grub entry for it. The / root partition will remain on the NVMe drive. The grub entry should refer to / on the NVMEe drive.
interesting and makes some sense to me as regards some of the things i've seen. where do i find the kernel and initramfs and where, exactly, do i copy them on the target drive? hopefully the info supplied above provides a reference as to where to make the grub entry and what it should say. thanks.

Quote:

... you need to copy the kernel and initramfs to the /boot partition on the SATA SSD ...
directly into the /boot directory i take it, not a subdirectory? thanks. hoping i can do this to the usbstick instead, assuming i've copied /boot and its subdirectories to the stick.

Quote:

... and create the aforementioned grub entry which refers to / on the NVMEe drive. You may simply be able to use the UUID of the NVMe / partition. If the Manjaro kernel and initramfs succesfully scans all of the hardware at boot it will create a symlink for the UUID of /dev/nvme0n1p2. Alternatively you could just specify /dev/nvme0n1p2 as root in grub.cfg.
thanks. this is getting to be a lot so i think i'll continue to chew on this and wait for responses. in the meantime, i'll try to copy /boot to the usb stick and search for where i find the kernel, what it's called, and initramfs.

thanks again to you all. you've given me cause for optimism!
babag

babag 07-09-2021 02:37 PM

this might be relevant. i think i managed to copy /boot from the manjaro nvme drive onto a usb stick. here are a couple of bits of info regarding that:

sudo fdisk -l now includes this for the usb stick:
Code:

Disk /dev/sdb: 3.86 GiB, 4126146560 bytes, 8058880 sectors
Disk model: USB Flash Memory
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x54455544

Device    Boot Start    End Sectors  Size Id Type
/dev/sdb1  *    2048 8046591 8044544  3.9G  c W95 FAT32 (LBA)

and pastebinit /media/babag/BOOTLINUX/boot/grub/grub.cfg =
Code:

https://paste.ubuntu.com/p/H54H7Gcbsj/
that should be the grub.cfg from the usb stick.

trying a reboot with just the usb stick and manjaro nvme drive in the system brings up an error that the media is not bootable.

thanks!

tofino_surfer 07-09-2021 03:03 PM

Quote:

would this work? can i try booting from a usb stick instead of from the ubuntu studio ssd?
If you are talking about a live distro then it would not work at all as they have a temporary in memory filesystem that is wiped out when the machine is rebooted. Anything you copy to the /boot directory and any changes you make to the grub.cfg would be erased when the machine is rebooted when you tried to boot into Manjaro.

If you wanted to use a usb stick you would have to install a linux distro onto a usb stick the same way you would install Linux to a SSD or HDD as it's just a block device. A Linux installation on a usb stick would have a permanent filesystem that you could modify.

You would need a second empty usb stick and then install Linux to it possibly using your existing live usb.

babag 07-09-2021 03:18 PM

thanks, tofino_surfer. i don't quite follow this and am afraid i may have been unclear in my descriptions of what i'm trying to do with the usb stick.

people make reference to 'initiating the boot process' in regard to usb booting. the idea would be to have, at least for now, just two devices in the system: the manjaro nvme, which the mobo cannot boot from, and a usb stick, which the mobo should be able to boot from, to initiate the boot process and call up the nvme. since the nvme cannot boot, i would hope to copy the manjaro /boot directory to the usb stick. my system is capable of booting from a usb stick as that's how i installed manjaro in the first place. the only thing on the usb stick currently is the /boot directory. if i've read things correctly, i need that /boot directory, the manjaro kernel, and initramfs. here is ls:
Code:

ls /media/babag/BOOTLINUX/boot/
efi  grub  initramfs-5.10-x86_64-fallback.img  initramfs-5.10-x86_64.img  intel-ucode.img  linux510-x86_64.kver  memtest86+  vmlinuz-5.10-x86_64

is this not correct? i'm thinking i also need to make a change(s) to grub.cfg. i've not done that yet. don't know what to do.

thanks,
babag

tofino_surfer 07-09-2021 03:56 PM

Quote:

people make reference to 'initiating the boot process' in regard to usb booting. the idea would be to have, at least for now, just two devices in the system: the manjaro nvme, which the mobo cannot boot from, and a usb stick, which the mobo should be able to boot from, to initiate the boot process and call up the nvme.
In order to be able to boot from a usb stick it needs to have a bootloader installed on it such as grub. If you just copy boot files onto an empty FAT usb stick this will not be bootable as you have found out.

It is possible to make a dedicated grub boot usb stick. There are many webpages that describe this procedure. However the simplest way as I described in my post is to create a lightweight Linux installation on a blank usb stick. The installer will install grub and make the stick bootable.

mrmazda 07-09-2021 05:37 PM

Quote:

Originally Posted by babag (Post 6265331)
Code:

> sudo fdisk -l
Disk /dev/nvme0n1: 931.53 GiB, 1000204886016 bytes, 1953525168 sectors
...
Disklabel type: gpt
...
Device          Start        End    Sectors  Size Type
/dev/nvme0n1p1  4096    618495    614400  300M EFI System
/dev/nvme0n1p2 618496 1953520064 1952901569 931.2G Linux filesystem


The presence of the ESP partition overwhelmingly implies Manjaro has been installed in UEFI mode. Thus, to boot Manjaro:
  1. whatever filesystem you put its /boot/ files on will have to be accessible to and for a bootloader
  2. An ESP partition must be available elsewhere than on the NVME device
  3. The PC needs to be booted in UEFI mode
  4. The Manjaro entry on the non-NVME ESP must be registered in NVRAM
IIRC, and my own internal RAM could be wrong about this, the disk containing the ESP to be used for booting Manjaro must be GPT partitioned. IOW, I think the definition of an ESP necessitates GPT. So, you need a GPT stick with an ESP, and a partition for its /boot/ files, to be able to jumpstart Manjaro from the NVME. Jumpstarting from your main SSD would require it be wiped and partitioned GPT.


All times are GMT -5. The time now is 11:27 AM.