Permalänk
Medlem

Efi och Ubuntu 12.04 Raid

Har installerat ubuntu 12.04 på en dator med EFI (acer aspire x1430) och kan inte få den att boota. Vid start står det bara att det inte finns någon bootbar disk.

Problemen började när jag skulle testa hur det fungerade med att boota när en disk i raiden har lagt av. Diskarna är partionerade såhär:
sda1 1 GB EFi start
sda2 8 gb swap
sda3 90 gb fysisk raid
sda4 400 gb fysisk raid

sdb1 1 GB EFi start
sdb2 8 gb swap
sdb3 90 gb fysisk raid
sdb4 400 gb fysisk raid

sda3 samt sdb3 -> md0 monterad som /
sda4 samt sdb4 -> md1 monterad /home

Jag har försökt följa varenda guide och förklaring som jag kan hitta på nätet men inget hjälper. Det har tom gått så långt så att både sda1 och sdb1 är helt tomma. Nu är frågan hur gör jag för att återigen kunna boota samt reparera efistart disken.

Tacksam för alla förslag.

Visa signatur

/me

Permalänk
Medlem

Det går väl inte att permanent lägga till UEFI-boot-alternativ? Jag har i alla fall inte lyckats när jag labbat på det med ett nytt Supermicro-kort med socket 1150 (X10SLL-F).
Utan när datorn en gång startar utan en hårdisk i sig så tas alla boot-alternativ kopplade till den hårddiskens EFI-partition permanent bort. Och om du ansluter hårddisken igen (eller köper en ny och återställer disken identiskt mot hur den var innan) så behöver man manuellt lägga tillbaka boot-alternativen efter att datorn startat utan en hårdisk i dig.

Om ditt UEFI har stöd för det så brukar det lättaste vara att lägga till nya boot-alternativ den vägen, men det kräver att du har fungerande .efi-filer på dina EFI-partitioner.
Annars är det inte så farligt svårt dock att lägga till nya alternativ inne i linux, förutsatt att du kan boota dit. Alternativt en live-cd eller live-usb om alla fungerande boot-alternativ är borta.

Så MBR och bios-emulering brukar vara bättre om man vill köra md-raid på / är min erfarenhet. Och då du har 500GB hårddiskar så ska MBR inte vara några problem.

Men vill du av någon anledning köra UEFI på GPT, så fungerar det ju skapligt om du har enkel åtkomst till bios eller live-cd. Via fysisk åtkomst eller IPMI eller liknande. Men har du inte det så känns det som ett mindre lämpligt alternativ.

Nästa gång EFI-botning strular så ta inte bort .efi-filen. Den är den jobbigaste biten att fixa.

Om du nu vill rädda din installation, så skapa en ny .efi-fil som du kan boota ifrån så får du göra följande steg:

Starta en Ubuntu live-cd eller live-USB. Använd en någorlunda ny 64-bitars variant, och starta i UEFI-läge (när du trycker F12 eller liknande för att välja boot-device så brukar det finnas både CD och UEFI: CD eller USB och UEFI: USB).

Väl inne i Ubuntu live 64-bit i UEFI så starta en terminal.

Steg 1: Montera allt som det är i din riktiga Ubuntu i /mnt-mappen i Ubuntu live av det som behövs för grub. Så /, /boot om du har separat /boot, och EFI-partitionen. /home behövs inte, så den kan du strunta i.
Då du kör raid via mdadm så behöver du även göra det nu i ubuntu live. Hade du kört krypterat eller lvm eller annat så behöver du även göra det här.

Så något i stil med detta borde fungera för dig:

sudo apt-get install mdadm sudo mdadm --assemble --scan sudo mount /dev/md0 /mnt sudo mount /dev/sda1 /mnt/boot/efi sudo mount --bind /dev /mnt/dev sudo mount --bind /dev/pts /mnt/dev/pts sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys

Ladda in modulen för kommunikation med EFI:

sudo modprobe efivars

Chroota dig in i /mnt, så att alla kommandon du körs mot din riktiga /, och ej Ubuntu lives tillfälliga /.

sudo chroot /mnt

Steg 2: Nu kör du som root i din riktiga /.
Då du tagit bort innehållet i din EFI-partition så behöver det genereras på nytt. Enklast är att installera om hela grub och börja om från början. Så kör:

grub-install /dev/sda

Nu är grub installerat som det var direkt efter installation.

Montera nu sdb1, och kopiera över din nya fina .efi-fil även dit:

sudo mount /dev/sdb1 /mnt sudo cp -r /boot/efi/* /mnt sudo umount /mnt

Och efter det så är det bara kvar att rensa upp efter dig. kör:

exit sudo umount /mnt/boot/efi sudo umount /mnt/dev/pts sudo umount /mnt/* sudo umount /mnt sudo reboot

Dold text

Kan du inte lägga till nya boot-alternativ i UEFI genom att bara bläddra efter .efi-filer så kan du göra det i linux:

Förutsatt att .efi-filen finns så kan du köra följande, både i riktiga Ubuntu och via en live-cd utan att chroota dig in till riktiga rooten.

Skriver ut en lista över EFI-bootalternativ:

efibootmgr -v exempelvis: BootCurrent: 0001 Timeout: 1 seconds BootOrder: 0001,0003,0000 Boot0000* P0: WDC WD5000HHTZ-04N21V0 BIOS(11,0,00) Boot0001* debian HD(1,800,79800,a5dfc286-53ab-4c83-84a0-ea06db14b20f)File(\EFI\debian\grubx64.efi) Boot0003* UEFI: Built-in EFI Shell Vendor(5023b95c-db26-429b-a648-bd47664c8012,)..BO

Skapa ett nytt alternativ:

efibootmgr -c --disk /dev/sdb --part 1 -l "\EFI\ubuntu\grubx64.efi" -L "Ubuntu 12.04 Disk2"

"--disk /dev/sdb --part 1" motsvarar /dev/sdb1.
-l "\EFI\ubuntu\grubx64.efi" är sökvägen till .efi-filen i /dev/sdb1
-L "Ubuntu 12.04 Disk2" sätter titeln till "Ubuntu 12.04 Disk2"

Ta bort ett alternativ:

efibootmgr -b 1 -B

Där "-b 1" motsvarar Boot0001* från efibootmgr -v.

Dold text
Följde min egen guide och upptäckte ett litet fel