Red devil schreef op zaterdag 05 januari 2013 @ 22:27:
[...]
Precies, dus als ik nu een nieuwe install doe (want na een reboot blijft de flash op sdb) de fstab instel, kan net zo goed de boot flash drive weer op sdb staan. Dus geen garanties. Er is dus geen manier om de boot flash partitie altijd op sda te laten mouten.
Er zijn zat posts/weblogs op 't internet te vinden die aangeven dat je geen device nodes in fstab moet zetten, maar met UUID of desnoods labels. Een herinstall zal je huidige situatie niet veranderen. Om het even aan te geven hoe 't werkt.
Je PC BIOS checkt alle schijfcontrollers op aanwezigheid van schijven. Het zal starten van de eerste schijf op de eerste controller, tenzij anders aangegeven. Maar niet elke schijf reageert even snel. Het BIOS geeft het OS, in dit geval Linux, een lijst met gevonden schijven door in volgorde van detectie/reactie. Dit betekend dat per boot het niet gegarandeerd is dat de eerste schijf op de eerste controller altijd sda zal zijn. Als deze schijf net een milliseconde later reageert dan de tweede, zal het sdb worden.
De computer kan alsnog prima starten, want 't start pas van de schijven nadat alles is gedetecteerd.
Grub zet de schijf waar 't op staat, en dus 't systeem van start, altijd vooraan, als (hd0) (zoals dat in Grub legacy wordt genoemd). In je grub config staat dat 't de initramfs zal laden van de partitie met een specifiek pad. Dit kan een device node zijn, maar ook een UUID. Gebruik je device path, dan kan het voorkomen dat 't systeem niet kan starten door de volgorde van detectie in het BIOS. Wordt er UUID gebruikt, zal 't /boot altijd vinden, initramfs laden en het boot proces initiëren van het OS.
Hoe het hierna precies zit met het vinden van fstab weet ik niet, maar Linux kan pas opstarten als / correct gemount kan worden. Als je device nodes gebruikt, zal 't systeem falen als het niet de benodigde onderdelen kan vinden, zoals device modules van de kernel voor aansturing van alle hardware. Ook het starten van processen zal niet lukken.
Bij gebruik van UUID in fstab is de garantie dat / correct gemount zal worden vele malen groter, tot praktisch 100% (er is altijd een mogelijkheid dat je file system corrupt is).
Het boeit dus niet of /boot op sda1, sdb2 of desnoods op sdq38 staat. Als de bootloader het maar kan vinden. Als initramfs eenmaal is geladen, is /boot niet meer belangrijk. /boot komt alleen bij het opstarten kijken, en als je een nieuwe kernel installeert, of iets aan je huidige configuratie wijzigt mbt opstarten t/m initramfs.