NSLU2 Debian Bootproblemen

Pagina: 1
Acties:

  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 29-01 08:53
Ik heb hier een Linksys - NSLU2 / Slug staan. Daar heb ik Debian (Etch) op draaien via een externe USB-harddisk. Dat werkt allemaal als een tierelier, incl. NFS, Samba, CUPS en Sane over mijn huisnetwerk.

Nu heb ik nog het volgende probleem waar ik niet uit kom:
Als ik een tweede USB-schijf aan het apparaat hang dan start de boel niet altijd op. Dat is een bekend probleem en komt omdat bij opstarten van het apparaat telkens opnieuw en min of meer toevallig bepaald wordt wat /dev/sda en /dev/sdb wordt. En aangezien rootfs op /dev/sda1 staat gaat het natuurlijk mis als /dev/sda opeens /dev/sdb is:
http://www.nslu2-linux.org/wiki/Debian/TroubleShooting

Er zouden diverse oplossingen mogelijk moeten zijn, maar ik kom er niet uit. Ik heb het volgende vergeefs geprobeerd:

1) Ik mount de filesystems via fstab al a.h.v. labels (heb ook UUID's geprobeerd):
http://www.nslu2-linux.org/wiki/HowTo/MountDisksByLabel

Mijn /etc/fstab:
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# /dev/sda1
/dev/disk/by-uuid/b61f1802-6319-4722-8d87-186b4dc7553b / ext3 defaults,errors=remount-ro 0 1

#/dev/sda2
/dev/disk/by-uuid/ec23fa19-7af3-468a-af6a-9417320bbb90 /mnt/data ext3 defaults 0 0

#/dev/sda3
UUID=f33a6a3a-e42f-4bac-9cff-cd88c2ed0b0d none swap sw 0 0

#/dev/sdb1
UUID=7b6d8ec4-0656-4f9f-b65c-c72b01da63a5 /mnt/Seadisk ext3 defaults 0 0

2) Ook geef ik via initrd inmiddels de rootfs-UUID mee:
cat /etc/initramfs-tools/conf.d/my-root-device-hack

ROOT=/dev/disk/by-uuid/b61f1802-6319-4722-8d87-186b4dc7553b

Volgens de documentatie zou met name [2] toch echt moeten werken, maar helaas start het apparaat nog steeds niet altijd op als er twee USB-schuiven aanhangen.

Er rest nog een derde (laatste?) mogelijkheid (waar ik zo mijn twijfels over heb, want die tweede oplossing via initrd is volgens mij niet wezenlijk anders) en dat is expliciet een root parameter meegeven aan de bootloader m.b.v. APEX. Maar aangezien daarvoor ook weer geflashed moet worden vind ik het nogal tricky want de documentatie erover snap ik niet goed:
http://www.nslu2-linux.or...n/ChangeKernelCommandLine

Heeft iemand al eens met dit bijltje gehakt? Of het hierboven beschreven probleem op een andere manier opgelost?

  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 29-01 08:53
Heeft niemand een idee of vergelijkbare ervaringen? Weet iemand bijvoorbeeld of dit misschien in Debian Testing of Unstable is opgelost, want het is in feite een bug.

[ Voor 10% gewijzigd door zordaz op 29-05-2008 16:33 ]


  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
Kan je dit niet beter met een udev regel doen ?

And this !! Is to go even further beyond!!!


  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 29-01 08:53
Hoe bedoel je? In Udev rules ben ik niet erg thuis.

Het gaat mis nog voordat udev actief is. Als het apparaat grub zou gebruiken als bootloader is het gemakkelijk aan te passen, maar de SLUG gebruikt APEX die in rom geflashed wordt.

[ Voor 16% gewijzigd door zordaz op 29-05-2008 16:35 ]


  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
Hmm als het probleem zich voor udev al voor heb je daar natuurlijk niks aan. lijkt mij
is het geen optie op beide hdś hetzelfde te zetten zodat hij elke keer boot. :) of maak ik het nu allemaal weer te makkelijk.

And this !! Is to go even further beyond!!!


  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 29-01 08:53
Je bedoelt op beide schijven een eigen root-filesystemen? Da's wel een erg hoog quick&dirty gehalte, want die moeten je natuurlijk wel allebei up-to-date houden.

Ik heb nog even gedacht aan software-raid (mirroring), maar dan loop je eigenlijk tegen dezelfde problemen aan tijdens booten.

  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 02-12-2025

daft_dutch

>.< >.< >.< >.<

op mijn werk heb ik een dell server en die kloot ook met sda sdb

Ik heb het met labels opgelost

LABEL=root / ext3 defaults,errors=remount-ro 0 1
LABEL=home /home ext3 defaults 0 2
LABEL=tmp /tmp ext3 defaults 0 2
LABEL=usr /usr ext3 defaults 0 2
LABEL=var /var ext3 defaults 0 2

>.< >.< >.< >.<


  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
Ja dat bedoelde ik wel en dan met sync synchroniseren maar wel erg quick en dirty

Heb ff een howto van fstab doorgelezen en dit lijkt me persoonlijk ook de handigste en makkelijkste optie gewoon elke hdd ff een mooie herkenbare volumenaam geven en gaan.

And this !! Is to go even further beyond!!!


  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 29-01 08:53
Ik heb het al geprobeerd met labels en UUID's in /etc/fstab, dat schrijf ik hierboven ook. Dat werkt (uiteraard) niet voor rootfs, want die moet al geladen worden voordat fstab gelezen wordt. Bij "gewone" servers los je dat op door in de bootloader het UUID of label mee te geven.

[ Voor 31% gewijzigd door zordaz op 30-05-2008 21:33 ]


  • lamko
  • Registratie: December 2001
  • Laatst online: 20-10-2024
Die 2 optie kun je niet simpel zoals ik het lees wat jij doet een regeltje erin zetten en klaar.
Je moet een nieuwe initramfs maken als dat conf filetje bestaat en die moet je flashen.

And this !! Is to go even further beyond!!!


  • zordaz
  • Registratie: Januari 2002
  • Laatst online: 29-01 08:53
lamko schreef op zaterdag 31 mei 2008 @ 16:07:
Die 2 optie kun je niet simpel zoals ik het lees wat jij doet een regeltje erin zetten en klaar.
Je moet een nieuwe initramfs maken als dat conf filetje bestaat en die moet je flashen.
Klopt en het flashen heb ik uiteraard gedaan, maar het werkt niet.
Ik heb als test zelfs nog en extra regel toegevoegd waarmee je de root parameter ook op het scherm laat afdrukken als je een nieuwe initramfs maakt en die verwijzing is bij mij ook juist, maar is dus geen oplossing.

One thing you could do in order to debug this is to edit
/usr/share/initramfs-tools/hooks/nslu2 and add the following line at
the end:

echo "Root is: -$rootdev-" >&2

and run update-initramfs -u and look at the output for the root device -
then you can check whether this root device looks correct.

/edit: voor de volledigheid: inmiddels werken twee schijven & Debian "out of the box" in Lenny, zonder aanpassingen van initramfs. In de bootlogs is wel te zien dat het de kernel wat "moeite kost" de schijven te vinden / activeren. Het booten duurt daarom ook wat langer, maar dat heb ik er graag voor over.

[ Voor 14% gewijzigd door zordaz op 24-10-2008 17:44 ]

Pagina: 1