Problemet är att diskarna kommer att heta t.ex. /dev/sda om disken hette /dev/hda innan. Skulle man behöva byta mellan ex 2.6.18 eller 2.6.19 med de gamla drivrutinerna så vill man inte sitta och redigera /etc/fstab hela tiden.
Som tur är kan man montera partitioner via dess UUID.
För att ta reda på UUID för en partition så kan man köra /lib/udev/vol_id -u /dev/partitionen (funkar inte på swap för mig i alla fall) eller kolla i /dev/disk/by-uuid där swap syns.
Om en partition inte har ett så kan man fixa det med tune2fs för ext2/ext3 eller reiserfstune för reiserfs. För swap-partitioner så får man köra mkswap och spara det numret på något sätt (skriva ner kankse). (När man ändå är igång kan man ge partitionen en "lable" som också går att använda med mount.)
Detta går inte att fixa om partitionen är monterad så / och kanske /usr får man lösa genom att boota från en live-skiva eller liknande.
Sen skriver man in det i /etc/fstab för /:
Kod: Markera allt
UUID=99999999-9999-9999-9999-999999999999 / reiserfs defaults 1 1
Kör man grub som bootloader så kan man ersätta root=/dev/bla med root=UUID=9999...osv. (Motsvarande i lilo skulle jag tro.)
Använder man initrd så kan man inte använda UUID när man anger root med -r utan där är det /dev/bla som gäller (busybox mount klarar inte UUID), man kan dessutom behöva skapa /dev/sda* i /boot/initrd-tree/dev själv första gången (använd sen inte mkinitrd med -c).
Kolla även på http://kernelnewbies.org/Linux_2_6_19#h ... 1328b1ddce (Libata PATA (Parallel ATA) merge)
Ubuntu löser det på det här sättet (säkert fler) så de som också kör Ubuntu kan kolla lite där.
En viktig sak som man inte får glömma är att libata använder sig av SCSI (och jag tänker inte säga hur många gånger jag kompilerade om kärnan innan jag kom ihåg det )
Slutligen, så här löste jag det. Skulle inte förvåna mig om det finns ett enklare sätt.