Artikelkategori: 7
Skriven av mdkdio 2020-07-28 21:59
url: 
Redigerad av: mdkdio  2020-08-09 13:57:31

Installation med m.2 som systemdisk

Beta version (då det kan förekomma fel, har bl.a. inte testat lösning 2 själv  då jag valde Lösning 1).
Självklart kan du/ni diskutera denna artikel (och alla andra) i forumet...

Äntligen dags med en ny PC!
Tänkte samtidigt skriva ned någon form av steg-för-steg guide när jag ändå håller på... För en ren 14.2 installation kommer inte att fungera!!
Då installationsprogrammet inte har stöd för NVMe enheter. Och i mitt fall, inga drivrutiner för mitt nätverkskort (Realtek 8111H).

Så det återstår 2 alternativ:
1. Strunta i 14.2 och köra current (14.2+)
2. Annan lösning (nedan)*.

* Jag valde current, men det kan vara av intresse för andra som vill köra 14.2

OBS! Sektionen på slutet kanske hjälper om du får problem...

Lösning 1: current.
Tack vare alienBOB a.k.a Eric Hameleers, så finns det färdiga ISO för nedladdning. Sedan är det bara att bränna en installations CD/DVD eller kopiera innehållet till ett USB minne (använda dd, cp eller iso2usb.sh).
Väljer man CD/DVD så är det bara att bränna ISO filen till media (t.ex. via k3b - Tools menyn, Burn Image. Eller motsvarande i annat program).


Hämta ned senaste "Slackware current-install (http://bear.alienbase.nl/mirrors/slackware/)". Detta är "korrekt väg att gå". Visserligen får man inte KDE5 installerad direkt efter installationen om man väljer detta alternativ. Men det är enkelt att "uppgradera" till KDE5.

Eller om man så vill, hämta ned "Slackware current live edition", här finns det ett flertal versioner att välja mellan, så välj rätt**.
Det går utmärkt att installera current live edition till hårddisk. Det är dock inte rekomenderat.
Men man får då KDE5 installerad direkt (om det är KDE man vill ha).

** current-live, xfce-live, mate-live, plasma5.


Men jag har ingen optisk enhet på min nya burk, så USB blev mitt val.
För att enkelt kopiera innehållet i ISO filen till en USB enhet (USB sticka/USB Minne), så finns det ett skript för detta här (http://www.slackware.com/~alien/liveslak/).
Skriptet heter iso2usb.sh
Ladda ned detta skript till (förslagsvis) samma mapp som du laddade ned ISO filen i.
Öppna sedan ett konsoll-fönster och gör filen exekverbar (chmod +x iso2usb.sh).
Kör sedan ./iso2usb.sh -i IsoFilensNamn.iso -o /dev/sdX.
Till exempel om ditt USB minne är /dev/sde och ISO filen ligger i samma mapp som usb2iso.sh filen,
skriv följande: ./iso2usb.sh -i slackware64-current-install-dvd.iso -o /dev/sde

Väljer man att installera ifrån en live version:
Så har man den fördelen att man kan testa om ens hårdvara fungerar med aktuell kärna (kernel), om man skulle vara osäker på detta...
för att sedan installera ifrån denna.

OBS! Ej rekomenderad metod, men det fungerar. Finns dock risk att du får installera om "ganska ofta".
Min rekomendation är att installera current-install för att sedan avinstallera KDE4 och sedan installera plasma5

** OBS! XFCE versionen innehåller inte det skript som möjligör installation till en hårddisk.
Nämligen setup2hd (vilket är en modifierad version av Slackware's vanliga "setup program".


Jag har valt att ladda ned current-install ISO och för enkelhetens skull körde jag dd i stället för iso2usb.sh skriptet.
dd -i slackware64-current-install-dvd.iso o=/dev/sdX


Sedan min nya maskin har UEFI stöd (vilket även den gamla har, men jag använde då bara mekaniska diskar), och inte använder någon mekanisk disk som system-disk, så blev valet installation med UEFI stöd.


Starta upp datorn på USB minnet:
OBS! I BIOS, se till att ange "starta på USB stickan i UEFI läge" under "Boot order", annars får du inte valet för att installera ELILO i stället för LILO (mer om detta senare).

Du känner igen dig från tidigare installationer av Slackware, inget direkt nytt före du kommer till "setup".

Partitionera M.2 enheten, välj fdisk för detta.

Tidigare har disk enheter haft namn så som sda, sdb etc, men med SSD så heter dessa enhet något i stil med /dev/nvme0, /dev/nvme1 etc.
Så för enkelhetens skull, kör ls /dev/nvme* för att få redan på vad din enhet heter.

i fdisk så skapade jag en 100 MB partition av typen EF00
För att sedan skapa partitioner för /, /boot, /home etc
Jag angav ingen "boot flag", sparade partitionerna när jag var nöjd...

Formatera EFI partitionen:

mkdosfs -F32 -s2 -n "EFI" /dev/nvme0n1p1

Dags för installationen:
Skriv "setup" (utan ")
Här är allt som vanligt, välj swap och partition för /, /home etc...
Formatera respektive partition.

Välj installation från USB enhet.

När du så kommer till val av typ av installation, välj "full install", här finner du 2 alternativ för detta:
"Full"
"Full with one line info" (något i stil med detta IAF).

När instalaltionen är klar med alla paket som ska installeras, och du kommer till den punkt då du ska installera LILO.
Välj att INTE installera LILO

Om du nu har startat USB minnet i UEFI läge, så får du nu alternativet att installera ELILO i stället.
Välj att installera detta, följ anvisningarna på skärmen.

När du är klar och får valet att starta om datorn:

GÖR INTE DET!

Dags att skapa en initrd fil...
Som root, skriv följande
/usr/share/mkinitrd/mkinitrd_command_generator.sh
Detta kommando skapar inget, utan är enbart för information och kan se ut ungefär så här:
mkinitrd -c -k 3.2.29 -f ext4 -r /dev/sdb2 -m usb-storage:ehci-hcd:usbhid:ohci-hcd:mbcache:jbd2:ext4 -u -o /boot/initrd.gz

Kör det föreslagna mkinitrd kommandot för att skapa initrd.gz filen.

När detta är klart så är det dags att kopiera 2 filer till efi partitionen.
Bl.a. den nyss skapade initrd.gz filen, samt generic kernel

Exempel:
(naturligtvis kopierar du de filer du har på din dator, dessa heter troligen något annat än de i exemplet nedan)

cp /boot/initrd.gz /boot/efi/EFI/Slackware/
cp /boot/vmlinuz-generic /boot/efi/EFI/Slackware/

Klappat och klart!

 

Lösning 2: 14.2
Nu blir det krångligt...
Detta kräver antingen 14.2 ISO bränd på DVD, uppackad till ytterligare ett USB minne, eller NFS

Som tidigare nämnt går det inte att installera 14.2 "rätt up och ner" på en NVME enhet.
Utan du måste starta installationen ifrån current live eller annan current version, här fungerar även xfce live versionen då vi inte kommer att
använda setup2hd.sh skriptet.

Förslagsvis så använder du slackware64-current-mini-install.iso (http://bear.alienbase.nl/mirrors/slackware/slackware64-current-iso/slackware64-current-mini-install.iso)
då denna innehåller de komponenter vi behöver för att starta installationen (setup), alltså en kernel och installer (setup), och endast är ca 100 MB stor.

Ladda sedan ner extract_initramfs.sh skriptet (http://www.slackware.com/~alien/tools/extract_initramfs.sh) vilket gör det enklare att packa up initrd.gz filen som innehåller installer (setup).

Partitionera SSD enheten enligt ovan.

Dags att packa upp initrd.gz filen:
Skapa en mapp, t.ex. /root/initrd64-current

kör följande kommandon:
mount -o loop slackware64-current-mini-install.iso /mnt/tmp
sh extract_initramfs.sh /mnt/tmp/isolinux/initrd.img /root/initrd64-current

För att starta setup medans vi fortfarande är i liveslack's grafiska gränssnitt:
mount -o bind /dev /root/initrd64-current/dev
mount -o bind /proc /root/initrd64-current/proc
mount -o bind /sys /root/initrd64-current/sys
chroot /root/initrd64-current

Nu till det krångliga...

Starta setup, här ser det ut som vanligt vid installation av 14.2, välj sedan att installera ifrån någon media (nfs, USB, DVD).
Förslagsvis ett USB minne.

Efter installationen, starta inte om eller på annat vis avsluta installationen. Utan skriv chroot /mnt för att komma in på ditt nyss installerade system.
Redigera slackpkg mirrors, välj en lämplig server.
Kör sedan slackpkg upgrade-all, detta kommer att uppdatera alla paket samt senaste kärnan.
Redigera slackpkg blacklist och "svartlista" kernel-generic, kernel-modules, detta för att undvika oplanerade uppdateringar av kärnan.

Skapa en initrd, /usr/share/mkinitrd/mkinitrd_command_generator.sh hjälper dig med detta.
Kopiera sedan generic-kernel och denna initrd fil till din EFI partition.

Nu när installationen av 14.2 är klar så säkerställ att du har en fungerande kärna. Förslagsvis då kärnan ifrån current för enkelhets skull.

Ladda ned följande:
kernel source
slackbuild för aktuell kärna

Kör följande kommandon:
 CWD=$(pwd)
 lftp -c “open http://slackware.osuosl.org/slackware64-current/source; mirror k”
 cd k/
 tar -C /usr/src -xf linux-5.4.55.tar.xz
 cp config-x86_64/config-generic-4.9.44.x64 /usr/src/linux-5.4.55/.config

Dags att kompilera kärnan:
 cd /usr/src/linux-5.4.55
 make oldconfig
 make -j 15 all
 make install

Nu när kärnan är installerad som /boot/bzimage och moduler som /lib/modules/5.4.55
så använder vi Slackware's paketskript för att skapa 2 paket:
 cd $CWD/k/packaging-x86_64/kernel-generic
 ./kernel-generic.SlackBuild
 cd $CWD/k/packaging-x86_64/kernel-modules
 ./kernel-modules.SlackBuild

Dessa paket kan nu installeras genom att använda installpkg, använd INTE upgradepkg  då vi vill se till så att vi alltid har en fungerande kärna att starta systemet med.
kernel-module paketet kommer nu i stort sett skriva över (ersätta) vad som finns i /lib/modules/5.4.55 men nu med ett paket och vi kan kontrollera detta via pakethanteraren
om vi så önskar.
kernel-generic paketet installerar den nya kärnan som /boot/vmlinuz-generic-5.4.55.
Kopiera denna kärna till EFI partitionen och skapa en ny initrd för att matcha den nya kärnan:
 cp /boot/vmlinuz-generic-4.9.44 /boot/efi/EFI/Slackware/
  $(/usr/share/mkinitrd/mkinitrd_command_generator.sh -k 4.9.44 -r -a “-o /boot/efi/EFI/Slackware/initrd_4.9.44.gz”)
Lägg sedan till en ny sektion för den här kärnan i elilo.conf t.ex. genom att kopiera sektionen för “label=slackware142” och ändra versions nummer,
samt se till så att nyckelordet för "default" har den nya "label" värdet (t.ex. om du engav label=slackware_current, så anger du detta i "default" värdet)
för vi vill starta med den nya kärnan som standard.
Gå ur det installerade systemets chroot:
exit
Gå sedan ur installations systemets chroot:
exit

Nu är vi snart klar, men det fattas fortfarande lite...
elilo konfigurationen för 14.2 har inte lagt till något rel till Slackware i datorns EFI's uppstarts meny.
Då vi nu är tillbaka i "liveslack" måste vi fixa detta genom att använda eliloconfig från slackware-current vilket är en del av liveslack
eliloconfig /setup2hd /dev/nvme0n1p7
Detta förutsatt att det installerade systemet är "mounted" under /setup2hd och att root partitionen är /dev/nvme0n1p7, ändra dessa parametrar så de passar
din installation. Denna gång kommer du att se att Slackware sektionen skapas.

Starta om datorn, se så allt fungerar som det ska. Vilket det gör om du gjort allt rätt :-)

 

OBS - Sektionen...
Om du uppgraderar kärnan/kernel, kom ihåg att kompilera wireguard-linux-compat paketet på nytt. Annars fungerar inte wireguard.
(Frivilligt) Avinstallera wireguard-linux-compat (removepkg wireguard-linux-compat).
Kör ./wireguard-linux-compat.SlackBuild
Det skapas nu ett nytt paket, inkl nuvarande kärnas/kernel versionsnummer (t.e.x. /tmp/wireguard-linux-compat-1.0.20200729_5.4.57-x86_64-1_SBo.tgz).
Installera det nya wireguard-linux-compat paketet (installpkg /tmp/wireguard-linux-compat-1.0.20200729_5.4.57-x86_64-1_SBo.tgz)
Eller om du inte valde att avinstallera paket, kör upgradepkg /tmp/wireguard-linux-compat-1.0.20200729_5.4.57-x86_64-1_SBo.tgz

/MDKDIO