Min gamla Acer vägrade starta från NVMe – tills jag hittade det dolda UEFI-tricket
Det är något speciellt med att få nytt liv i gammal hårdvara. Jag
satt där med min Acer Aspire E5-575G och en ny PNY CS1030 NVMe på 1 TB
och tänkte att det väl bara var att flytta över Artix Linux med
Timeshift. Jo tjena.
Allt såg rätt ut. Men när datorn skulle starta möttes jag av orden
”No Bootable Device”. Till slut hittade jag en gråmarkerad funktion
långt inne i BIOS. Några inställningar senare dök GRUB upp – och där var
mitt gamla Artix igen. Helt jävla otroligt!
Från 128 GB SATA till 1 TB
NVMe
Min Acer har några år på nacken, men den fungerar fortfarande bra med
Artix Linux, OpenRC och Fluxbox. Systemet låg tidigare på en Kingston
M.2 SATA-SSD på 128 GB. Samtidigt hade jag en Samsung 850 EVO på 500 GB
som separat datadisk, där jag också sparade Timeshift-kopior.
Jag ville få mer utrymme utan att installera om alla program eller
bygga upp min miljö igen. Det fanns dock en osäkerhet: kunde just den
här äldre Acer-modellen starta från en PCIe/NVMe-disk? Att Linux kan se
en disk är trots allt inte samma sak som att datorns firmware kan starta
från den.
Linux Mint Live, GParted
och Timeshift
Jag startade Linux Mint från USB, öppnade GParted och skapade en
GPT-partitionstabell på den nya PNY-disken. Jag valde tre partitioner:
en EFI-partition på 1 GiB (FAT32), en stor ext4-partition för Artix och
en swap-partition på 8 GiB. På EFI-partitionen satte jag flaggorna esp
och boot.
Sedan öppnade jag Timeshift och valde min Samsung som källa till
säkerhetskopian. Nu kom ett första litet bakslag. Timeshift misslyckades
med rsync – inte för att rsync saknades, utan för att Samsung hade
monterats skrivskyddat när jag tidigare letade efter mina kopior.
Read-only file system
När jag väl hade ändrat monteringen till skrivbar kunde Timeshift
förbereda och genomföra återställningen. I återställningsguiden valde
jag den nya ext4-partitionen som / och FAT32-partitionen som /boot/efi.
/boot och /home skulle ligga kvar på rotpartitionen. Alternativet att
installera GRUB2 till MBR avmarkerades, eftersom jag använde UEFI.
Timeshift meddelade till slut ”Restore complete”. Men när jag
startade om datorn fanns fortfarande ingen startbar enhet.
Allt fanns där – men
Acer ville inte starta
Tillbaka i Linux Mint Live kunde jag verifiera att Artix-filerna hade
återställts, att /etc/fstab pekade på rätt nya UUID och att EFI-filen
fanns under EFI/Artix/grubx64.efi. Jag gick in i den återställda
installationen via chroot, installerade GRUB för UEFI, skapade om
GRUB-menyn och byggde om initramfs med NVMe-stöd.
grub-install --target=x86_64-efi --efi-directory=/boot/efi
--bootloader-id=Artix --recheck
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -P
Kommandona lyckades. Artix fick en egen UEFI-post som pekade på rätt
EFI-partition, och jag lade den först i startordningen med efibootmgr.
Ändå: ”No Bootable Device”.
Det avgörande BIOS-tricket
I Acers BIOS, under Security, fanns alternativet ”Select an UEFI file
as trusted for executing”. Det var först gråmarkerat. Jag satte ett
Supervisor Password i BIOS. När jag sedan tillfälligt aktiverade Secure
Boot blev funktionen tillgänglig.
Jag kunde då bläddra i EFI-partitionen, öppna mappen Artix och hitta
grubx64.efi. Jag registrerade filen som betrodd, med beskrivningen
”Artix”, stängde sedan av Secure Boot igen och sparade
inställningarna.
Den här gången startade datorn GRUB. Därefter kom ”Booting Artix
Linux – Linux LTS kernel”, inloggningen och slutligen min vanliga
Fluxbox-miljö. Firefox fungerade, och Samsung-disken var monterad precis
som tidigare.
Beviset i terminalen
För att vara säker på att jag faktiskt startat från den nya disken
körde jag:
findmnt -no SOURCE /
/dev/nvme0n1p2
Och för att kontrollera lagringsutrymmet:
df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 929G 30G 852G 4% /
Swap fungerade på /dev/nvme0n1p3, EFI låg på /dev/nvme0n1p1 och
Samsung var monterad på /media/samsung. Flytten var alltså genomförd:
samma Artix-installation, men på 1 TB NVMe.
Vad lärde jag mig?
Den viktigaste lärdomen är att ”No Bootable Device” inte
nödvändigtvis betyder att en äldre dator saknar stöd för att starta från
NVMe. I mitt fall var själva installationen korrekt. Det avgörande var
att Acers UEFI behövde få GRUB-filen registrerad som betrodd.
Det här är ingen garanti för andra Acer-modeller, men det visar
varför det kan löna sig att felsöka firmware och EFI-startposter innan
man ger upp. Och det visar hur användbart Timeshift kan vara när man
vill flytta en Linux-installation utan ominstallation.
Det som började som ett enkelt diskbyte blev en kväll med GParted,
rsync, chroot, GRUB, initramfs och BIOS-menyer. Men belöningen var värd
det: en äldre Acer fick nytt liv – och jag lärde mig en hel del på
köpet.
Ingen ominstallation. Bara lite envishet och en hel del
felsökning.
Teknisk
genomgång – för den som vill prova själv
Nedanstående beskriver hur jag gjorde på just min dator. Enhetsnamn,
UUID, UEFI-menyer och startposter kan skilja sig från andra system.
Kontrollera alltid vilken disk som är vilken, och behåll en fristående
säkerhetskopia innan du gör ändringar.
Partitionering med GParted
| Enhet |
Format |
Funktion |
| nvme0n1p1 – 1 GiB |
FAT32, esp/boot |
/boot/efi |
| nvme0n1p2 – ca 944,9 GiB |
ext4 |
/ |
| nvme0n1p3 – 8 GiB |
linux-swap |
Swap |
Timeshift och
skrivskyddsfelet
Timeshift-kopian låg på Samsung, vars ext4-filsystem i mitt fall låg
direkt på /dev/sda, inte på /dev/sda1. Vid första försöket fick
Timeshift fel eftersom disken var monterad skrivskyddad.
findmnt -S /dev/sda
sudo mount -o remount,rw /mnt/samsung
Efter att säkerställt att disken kunde monteras skrivbar avmonterade
jag den manuella monteringen och lät Timeshift hantera sin
snapshot-enhet. Jag valde RSYNC och återställde root till nvme0n1p2 samt
EFI till nvme0n1p1.
Kontrollera UUID och
återställ startmiljön
sudo blkid /dev/nvme0n1p1 /dev/nvme0n1p2 /dev/nvme0n1p3
cat /mnt/artix/etc/fstab
Jag monterade den återställda installationen samt EFI-partitionen i
Linux Mint Live:
sudo mkdir -p /mnt/artix
sudo mount /dev/nvme0n1p2 /mnt/artix
sudo mount /dev/nvme0n1p1 /mnt/artix/boot/efi
Därefter band jag in /dev, /proc, /sys och /run och gick in via
chroot:
for dir in dev proc sys run; do
sudo mount --rbind /$dir /mnt/artix/$dir
sudo mount --make-rslave /mnt/artix/$dir
done
sudo chroot /mnt/artix /bin/bash
Inne i Artix körde jag:
grub-install --target=x86_64-efi --efi-directory=/boot/efi
--bootloader-id=Artix --recheck
grub-mkconfig -o /boot/grub/grub.cfg
mkinitcpio -P
efibootmgr -v
Min mkinitcpio-konfiguration innehöll MODULES=(nvme). Den viktiga
återkopplingen var att initramfs skapades utan fel: ”Initcpio image
generation successful”.
UEFI-posten och
BIOS-lösningen
Med efibootmgr såg jag en Artix-post som pekade på
EFI/Artix/grubx64.efi på den nya NVMe-diskens EFI-partition. Jag lade
den först i startordningen. Trots detta vägrade datorn starta före
BIOS-ändringen.
På min Acer behövde jag gå till Security, sätta Supervisor Password,
tillfälligt aktivera Secure Boot och öppna ”Select an UEFI file as
trusted for executing”. Där valde jag EFI/Artix/grubx64.efi och
registrerade filen som ”Artix”. Sedan stängde jag av Secure Boot igen,
sparade och startade om.
Viktigt: Spara BIOS-lösenordet säkert. Använd inte startnummer från
någon annans efibootmgr-utskrift utan att först kontrollera dem på din
egen dator.
Slutkontroll efter start
findmnt -no SOURCE /
df -h /
swapon --show
findmnt /boot/efi
findmnt /media/samsung
På min dator visade detta att root låg på /dev/nvme0n1p2, swap på
/dev/nvme0n1p3, EFI på /dev/nvme0n1p1 och Samsung fortfarande på
/dev/sda. Den gamla Kingston-disken sparade jag orörd som reserv.