Discussion:
Installing Slackware46 15.0 on Lenovo M75s Gen2
(too old to reply)
John Smith
2022-05-30 02:01:22 UTC
Permalink
My wife just got a Lenovo M75s Gen2 system with Windows
preinstalled. I had a go at installing Slackware64 15.0 in it, and failed
miserably. Here are the details, in the hope that somebody can help.

The system comes with a 500GB SSD storage device. Actually, it is
a device plugged into the motherboard directly - like a RAM module - and
identified at the Lenovo setup as an M2 Samsung device. We added an old
SATA hard drive as well, for that's where my wife's data live - the idea
is to use the M2 device for the OS, and the SATA drive for her home
directory. In the Lenovo setup, I made sure to disable the Secure Boot
feature, plus changed the boot order settings so I can boot off the
Slackware64 15.0 install USB stick.

After doing all this, the system indeed boots off the USB stick
without any problems - without disabling Secure Boot the only thing that
boots is the preinstalled Windows.

Everything seems to work fine, in that the kernel encounters no
problems with the hardware, and I can log in at the command line as root
in order to start launching the install.

The problem arises when I try to identify the hard drives
available. When I do

fdisk /dev/sda

the hard drive identified is the SATA hard drive that we installed. When
I try with /dev/sdb, this is the Slackware64 15.0 USB stick. And that's
it. Much to my dismay, the M2 drive is not detected at all. Anybody know
why such is the case, and, more importantly, how to get around it?

I tried to disable a few more, Windows-related settings in the
Lenovo setup - to no avail. I tried to find a setting that would allow me
to change things to using BIOS legacy mode, but nothing like it seems to
be available.

Any suggestions on how to get Slackware64 15.0 to detect that M2
drive would be most welcome.
Aragorn
2022-05-30 03:06:43 UTC
Permalink
Post by John Smith
The system comes with a 500GB SSD storage device. Actually,
it is a device plugged into the motherboard directly - like a RAM
module - and identified at the Lenovo setup as an M2 Samsung device.
We added an old SATA hard drive as well, for that's where my wife's
data live - the idea is to use the M2 device for the OS, and the SATA
drive for her home directory. In the Lenovo setup, I made sure to
disable the Secure Boot feature, plus changed the boot order settings
so I can boot off the Slackware64 15.0 install USB stick.
After doing all this, the system indeed boots off the USB
stick without any problems - without disabling Secure Boot the only
thing that boots is the preinstalled Windows.
Everything seems to work fine, in that the kernel encounters
no problems with the hardware, and I can log in at the command line
as root in order to start launching the install.
The problem arises when I try to identify the hard drives
available. When I do
fdisk /dev/sda
the hard drive identified is the SATA hard drive that we installed.
When I try with /dev/sdb, this is the Slackware64 15.0 USB stick. And
that's it. Much to my dismay, the M2 drive is not detected at all.
Anybody know why such is the case, and, more importantly, how to get
around it?
M.2 drives and PCIe-mounted NVMe drives do not identify to userland as
/dev/sd? device nodes. Instead, you should look for /dev/nvme* nodes,
e.g. /dev/nvme0n1p1 — the "-p1" at the end indicates the partition,
while the characters in front of it indicate the drive.
--
With respect,
= Aragorn =
Henrik Carlqvist
2022-05-30 05:44:05 UTC
Permalink
Post by Aragorn
Post by John Smith
When I do
fdisk /dev/sda
the hard drive identified is the SATA hard drive that we installed.
When I try with /dev/sdb, this is the Slackware64 15.0 USB stick. And
that's it.
M.2 drives and PCIe-mounted NVMe drives do not identify to userland as
/dev/sd? device nodes. Instead, you should look for /dev/nvme* nodes,
e.g. /dev/nvme0n1p1 — the "-p1" at the end indicates the partition,
while the characters in front of it indicate the drive.
Yes, when trying to find which drives there are in a system, it is easier
to do:

fdisk -l

or

cat /proc/partitions

With that computer and nvme drive you might have to boot using UEFI and
maybe also use a GPT partition table instead of the good old MBR DOS-
stype partition tables. If so, you will need to say goodbye to lilo and
use some other boot loader like elilo, grub or syslinux/extlinux. Among
these bootloaders, I did choose extlinux myself as its configuration did
resemble isolinux and pxelinux which I had used before to boot from cdrom
or network.

regards Henrik
John Smith
2022-05-31 17:20:01 UTC
Permalink
Post by Henrik Carlqvist
Post by Aragorn
Post by John Smith
When I do
fdisk /dev/sda
the hard drive identified is the SATA hard drive that we installed.
When I try with /dev/sdb, this is the Slackware64 15.0 USB stick. And
that's it.
M.2 drives and PCIe-mounted NVMe drives do not identify to userland as
/dev/sd? device nodes. Instead, you should look for /dev/nvme* nodes,
e.g. /dev/nvme0n1p1 — the "-p1" at the end indicates the partition,
while the characters in front of it indicate the drive.
Yes, when trying to find which drives there are in a system, it is
fdisk -l
or
cat /proc/partitions
With that computer and nvme drive you might have to boot using UEFI and
maybe also use a GPT partition table instead of the good old MBR DOS-
stype partition tables. If so, you will need to say goodbye to lilo and
use some other boot loader like elilo, grub or syslinux/extlinux. Among
these bootloaders, I did choose extlinux myself as its configuration did
resemble isolinux and pxelinux which I had used before to boot from
cdrom or network.
Thanks. I have been able to install Slackware64 15.0 in the NVMe
device. However, I have run into trouble when I tried to upgrade the
kernel.

Following the instructions in the README_UEFI.TXT file delivered
withSlackware64 15.0, I created two partitions in the /dev/nvme0n1
device. The first one, /dev/nvme0n1p1, is 100 MB in size, for the GPT
partition. The second one, /dev/nvme0n1p2, is the rest of the storage
available in the device - about 500 GB.

With this, I was able to install Slackware64 15.0 in this device.
The system boots up correctly, using elilo, and everything seems to be
fine.

Next I upgraded my packages using the ones in the patches/
packages directory of Slackware64 15.0. This includes a subdirectory for
the Linux kernel, to upgrade from the installed 5.15.19 to 5.15.38. I did
this, making sure to run eliloconfig as root before rebooting. I did check
that things under /boot/efi/EFI/Slackware had been modified as a
consequence of this operation, which they indeed had.

On rebooting, initially everything seems to be OK - until I reach
a point at which the boot process gets interrupted with the following
diagnostics:

No kernel modules found for Linux 5.15.38.
mount: mounting /dev/nvme0n1p2 on /mnt failed: No such device
ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead.
You can try to fix it. Type 'exit' when things are done.

/bin/sh: can't access tty; job control turned off
/ #

At this point, the system does not respond to keyboard input any longer.
On attemptng to reboot, exactly the same thing happens again.

It would seem that, for whatever reason, it can't find the
partition where I installed Slackware64 15.0. Any thoughts on what it is
that may be going, and how to fix the problem?

Interestingly, after doing the above I booted off the
installation USB stick, and went over the installation process itself,
but without installing anything but the Y packages - the BSD games, I
think - moving on to the configuration steps immediately afterward. These
steps recognize that the 5.15.38 kernel is present, and prompt you to
install ELILO for this kernel. The installation succeeds, and after doing
this I can indeed boot my system with the 5.15.38 kernel. It would seem
to be the case that this does something beyond what eliloconfig on its
own does.

At least I got a workaround, but I wonder why eliloconfig did not
do the right thing?
Chris Elvidge
2022-05-31 19:42:37 UTC
Permalink
Post by John Smith
Post by Henrik Carlqvist
Post by Aragorn
Post by John Smith
When I do
fdisk /dev/sda
the hard drive identified is the SATA hard drive that we installed.
When I try with /dev/sdb, this is the Slackware64 15.0 USB stick. And
that's it.
M.2 drives and PCIe-mounted NVMe drives do not identify to userland as
/dev/sd? device nodes. Instead, you should look for /dev/nvme* nodes,
e.g. /dev/nvme0n1p1 — the "-p1" at the end indicates the partition,
while the characters in front of it indicate the drive.
Yes, when trying to find which drives there are in a system, it is
fdisk -l
or
cat /proc/partitions
With that computer and nvme drive you might have to boot using UEFI and
maybe also use a GPT partition table instead of the good old MBR DOS-
stype partition tables. If so, you will need to say goodbye to lilo and
use some other boot loader like elilo, grub or syslinux/extlinux. Among
these bootloaders, I did choose extlinux myself as its configuration did
resemble isolinux and pxelinux which I had used before to boot from
cdrom or network.
Thanks. I have been able to install Slackware64 15.0 in the NVMe
device. However, I have run into trouble when I tried to upgrade the
kernel.
Following the instructions in the README_UEFI.TXT file delivered
withSlackware64 15.0, I created two partitions in the /dev/nvme0n1
device. The first one, /dev/nvme0n1p1, is 100 MB in size, for the GPT
partition. The second one, /dev/nvme0n1p2, is the rest of the storage
available in the device - about 500 GB.
With this, I was able to install Slackware64 15.0 in this device.
The system boots up correctly, using elilo, and everything seems to be
fine.
Next I upgraded my packages using the ones in the patches/
packages directory of Slackware64 15.0. This includes a subdirectory for
the Linux kernel, to upgrade from the installed 5.15.19 to 5.15.38. I did
this, making sure to run eliloconfig as root before rebooting. I did check
that things under /boot/efi/EFI/Slackware had been modified as a
consequence of this operation, which they indeed had.
On rebooting, initially everything seems to be OK - until I reach
a point at which the boot process gets interrupted with the following
No kernel modules found for Linux 5.15.38.
mount: mounting /dev/nvme0n1p2 on /mnt failed: No such device
ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead.
You can try to fix it. Type 'exit' when things are done.
/bin/sh: can't access tty; job control turned off
/ #
At this point, the system does not respond to keyboard input any longer.
On attemptng to reboot, exactly the same thing happens again.
It would seem that, for whatever reason, it can't find the
partition where I installed Slackware64 15.0. Any thoughts on what it is
that may be going, and how to fix the problem?
Interestingly, after doing the above I booted off the
installation USB stick, and went over the installation process itself,
but without installing anything but the Y packages - the BSD games, I
think - moving on to the configuration steps immediately afterward. These
steps recognize that the 5.15.38 kernel is present, and prompt you to
install ELILO for this kernel. The installation succeeds, and after doing
this I can indeed boot my system with the 5.15.38 kernel. It would seem
to be the case that this does something beyond what eliloconfig on its
own does.
At least I got a workaround, but I wonder why eliloconfig did not
do the right thing?
After upgrading kernel, headers and modules - slackpkg I presume - run
(as root) pkgtool and select setup to rerun some installation scripts.
Select 01.mkinitrd and ll.eliloconfig
That will update the initrd and reinstall it in EFI directory.
--
Chris Elvidge
England
John Smith
2022-05-31 21:37:41 UTC
Permalink
Post by Chris Elvidge
Post by John Smith
Post by Henrik Carlqvist
Post by Aragorn
Post by John Smith
When I do
fdisk /dev/sda
the hard drive identified is the SATA hard drive that we installed.
When I try with /dev/sdb, this is the Slackware64 15.0 USB stick.
And that's it.
M.2 drives and PCIe-mounted NVMe drives do not identify to userland
as /dev/sd? device nodes. Instead, you should look for /dev/nvme*
nodes,
e.g. /dev/nvme0n1p1 — the "-p1" at the end indicates the partition,
while the characters in front of it indicate the drive.
Yes, when trying to find which drives there are in a system, it is
fdisk -l
or
cat /proc/partitions
With that computer and nvme drive you might have to boot using UEFI
and maybe also use a GPT partition table instead of the good old MBR
DOS- stype partition tables. If so, you will need to say goodbye to
lilo and use some other boot loader like elilo, grub or
syslinux/extlinux. Among these bootloaders, I did choose extlinux
myself as its configuration did resemble isolinux and pxelinux which I
had used before to boot from cdrom or network.
Thanks. I have been able to install Slackware64 15.0 in the NVMe
device. However, I have run into trouble when I tried to upgrade the
kernel.
Following the instructions in the README_UEFI.TXT file delivered
withSlackware64 15.0, I created two partitions in the /dev/nvme0n1
device. The first one, /dev/nvme0n1p1, is 100 MB in size, for the GPT
partition. The second one, /dev/nvme0n1p2, is the rest of the storage
available in the device - about 500 GB.
With this, I was able to install Slackware64 15.0 in this device.
The system boots up correctly, using elilo, and everything seems to be
fine.
Next I upgraded my packages using the ones in the patches/
packages directory of Slackware64 15.0. This includes a subdirectory
for the Linux kernel, to upgrade from the installed 5.15.19 to 5.15.38.
I did this, making sure to run eliloconfig as root before rebooting. I
did check that things under /boot/efi/EFI/Slackware had been modified
as a consequence of this operation, which they indeed had.
On rebooting, initially everything seems to be OK - until I reach
a point at which the boot process gets interrupted with the following
No kernel modules found for Linux 5.15.38.
No /sbin/init found on rootdev (or not mounted). Trouble ahead.
You can try to fix it. Type 'exit' when things are done.
/bin/sh: can't access tty; job control turned off / #
At this point, the system does not respond to keyboard input any
longer. On attemptng to reboot, exactly the same thing happens again.
It would seem that, for whatever reason, it can't find the
partition where I installed Slackware64 15.0. Any thoughts on what it
is that may be going, and how to fix the problem?
Interestingly, after doing the above I booted off the
installation USB stick, and went over the installation process itself,
but without installing anything but the Y packages - the BSD games, I
think - moving on to the configuration steps immediately afterward.
These steps recognize that the 5.15.38 kernel is present, and prompt
you to install ELILO for this kernel. The installation succeeds, and
after doing this I can indeed boot my system with the 5.15.38 kernel.
It would seem to be the case that this does something beyond what
eliloconfig on its own does.
At least I got a workaround, but I wonder why eliloconfig did not
do the right thing?
After upgrading kernel, headers and modules - slackpkg I presume - run
(as root) pkgtool and select setup to rerun some installation scripts.
Select 01.mkinitrd and ll.eliloconfig That will update the initrd and
reinstall it in EFI directory.
Thanks. After my last post I did some googling and found out that
my problem was that I did not run mkinitrd. Your suggestion simplifies
the whole thing significantly; much appreciated.
User
2022-06-02 13:06:34 UTC
Permalink
Post by John Smith
Post by Chris Elvidge
Post by John Smith
Post by Henrik Carlqvist
Post by Aragorn
Post by John Smith
When I do
fdisk /dev/sda
the hard drive identified is the SATA hard drive that we installed.
When I try with /dev/sdb, this is the Slackware64 15.0 USB stick.
And that's it.
M.2 drives and PCIe-mounted NVMe drives do not identify to userland
as /dev/sd? device nodes. Instead, you should look for /dev/nvme*
nodes,
e.g. /dev/nvme0n1p1 — the "-p1" at the end indicates the partition,
while the characters in front of it indicate the drive.
Yes, when trying to find which drives there are in a system, it is
fdisk -l
or
cat /proc/partitions
With that computer and nvme drive you might have to boot using UEFI
and maybe also use a GPT partition table instead of the good old MBR
DOS- stype partition tables. If so, you will need to say goodbye to
lilo and use some other boot loader like elilo, grub or
syslinux/extlinux. Among these bootloaders, I did choose extlinux
myself as its configuration did resemble isolinux and pxelinux which I
had used before to boot from cdrom or network.
Thanks. I have been able to install Slackware64 15.0 in the NVMe
device. However, I have run into trouble when I tried to upgrade the
kernel.
Following the instructions in the README_UEFI.TXT file delivered
withSlackware64 15.0, I created two partitions in the /dev/nvme0n1
device. The first one, /dev/nvme0n1p1, is 100 MB in size, for the GPT
partition. The second one, /dev/nvme0n1p2, is the rest of the storage
available in the device - about 500 GB.
With this, I was able to install Slackware64 15.0 in this device.
The system boots up correctly, using elilo, and everything seems to be
fine.
Next I upgraded my packages using the ones in the patches/
packages directory of Slackware64 15.0. This includes a subdirectory
for the Linux kernel, to upgrade from the installed 5.15.19 to 5.15.38.
I did this, making sure to run eliloconfig as root before rebooting. I
did check that things under /boot/efi/EFI/Slackware had been modified
as a consequence of this operation, which they indeed had.
On rebooting, initially everything seems to be OK - until I reach
a point at which the boot process gets interrupted with the following
No kernel modules found for Linux 5.15.38.
No /sbin/init found on rootdev (or not mounted). Trouble ahead.
You can try to fix it. Type 'exit' when things are done.
/bin/sh: can't access tty; job control turned off / #
At this point, the system does not respond to keyboard input any
longer. On attemptng to reboot, exactly the same thing happens again.
It would seem that, for whatever reason, it can't find the
partition where I installed Slackware64 15.0. Any thoughts on what it
is that may be going, and how to fix the problem?
Interestingly, after doing the above I booted off the
installation USB stick, and went over the installation process itself,
but without installing anything but the Y packages - the BSD games, I
think - moving on to the configuration steps immediately afterward.
These steps recognize that the 5.15.38 kernel is present, and prompt
you to install ELILO for this kernel. The installation succeeds, and
after doing this I can indeed boot my system with the 5.15.38 kernel.
It would seem to be the case that this does something beyond what
eliloconfig on its own does.
At least I got a workaround, but I wonder why eliloconfig did not
do the right thing?
After upgrading kernel, headers and modules - slackpkg I presume - run
(as root) pkgtool and select setup to rerun some installation scripts.
Select 01.mkinitrd and ll.eliloconfig That will update the initrd and
reinstall it in EFI directory.
Thanks. After my last post I did some googling and found out that
my problem was that I did not run mkinitrd. Your suggestion simplifies
the whole thing significantly; much appreciated.
I also have Slackware15.0 on an NVME drive that boots through UEFI. So
far have gotten through two of the kernel upgrades in slackpkg (5.15.27
& 5.15.38).

When running slackpkg upgrade-all will get a warning message that the
system doesn't use lilo.

At least on my systems I got through the latest kernel upgrade with:

mkinitrd -c -k 5.15.38 -m ext4 # see /boot/README.initrd
eliloconfig # smash enter through the menus
reboot

The only caveat I found is that any packages installed through
slackbuilds which require kernel modules (e.g. VirtualBox, Nvidia) will
have to be re-built.

John Smith
2022-05-30 13:30:04 UTC
Permalink
Post by Aragorn
Post by John Smith
The system comes with a 500GB SSD storage device. Actually,
it is a device plugged into the motherboard directly - like a RAM
module - and identified at the Lenovo setup as an M2 Samsung device. We
added an old SATA hard drive as well, for that's where my wife's data
live - the idea is to use the M2 device for the OS, and the SATA drive
for her home directory. In the Lenovo setup, I made sure to disable the
Secure Boot feature, plus changed the boot order settings so I can boot
off the Slackware64 15.0 install USB stick.
After doing all this, the system indeed boots off the USB
stick without any problems - without disabling Secure Boot the only
thing that boots is the preinstalled Windows.
Everything seems to work fine, in that the kernel encounters
no problems with the hardware, and I can log in at the command line as
root in order to start launching the install.
The problem arises when I try to identify the hard drives
available. When I do
fdisk /dev/sda
the hard drive identified is the SATA hard drive that we installed.
When I try with /dev/sdb, this is the Slackware64 15.0 USB stick. And
that's it. Much to my dismay, the M2 drive is not detected at all.
Anybody know why such is the case, and, more importantly, how to get
around it?
M.2 drives and PCIe-mounted NVMe drives do not identify to userland as
/dev/sd? device nodes. Instead, you should look for /dev/nvme* nodes,
e.g. /dev/nvme0n1p1 — the "-p1" at the end indicates the partition,
while the characters in front of it indicate the drive.
Very much appreciated for that piece of information - the
installation kernel indeed detects the M.2 drive at /dev/nvme0n1. The
installation seems to be proceeding without any issues.
Loading...