Sie sind nicht angemeldet.

Anzeigen

**Wir werden in den kommenden Tagen einen Umzug auf einen neuen Server durchführen. Im Rahmen dieser Maßnahme wird das Forum ca. 1 Stunde nicht erreichbar sein.** nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

Lieber Besucher, herzlich willkommen bei: Die NSLU2 Community****wenns ums speichern und streamen geht****. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Dienstag, 13. November 2007, 11:46

Debian-RAID1: Root Partition im Array hinzufuegen

Hallo,

ich habe Debian/NSLU2 auf zwei gleichen USB=>SATA-II Platten mit dem Debian Installer (low priority) installiert.
Nach der Installation und Reboot wurde das System jedoch nicht gestartet. Da ich keine serielle Schnittstelle installiert habe, bekomme ich leider keine weiteren Infos aus dem initramfs!
Per uplsug2 habe ich das Debian-Etch Image von hier http://www.cyrius.com/debian/nslu2/unpack.html genutzt. Damit bootet die NSLU2.
Mit cat /proc/mdstat sieht es nun so aus:
Personalities : [raid1]
md0 : active raid1 sdb1[1]
1461760 blocks [2/1] [_U]
md5 : active raid1 sda9[0] sdb9[1]
154368448 blocks [2/2] [UU]
md4 : active raid1 sda8[0] sdb8[1]
78123968 blocks [2/2] [UU]
md3 : active raid1 sda7[0] sdb7[1]
48829440 blocks [2/2] [UU]
md2 : active raid1 sda6[0] sdb6[1]
29294400 blocks [2/2] [UU]

sda5/sdb6 sind zusaetzlich mit je 512MB als swap eingehangen und nicht im RAID-Verbund integriert.
Wenn ich nun /dev/sda1 durch ein hotadd mit...
mdadm -a /dev/md0 /dev/sda1
...md0 hinzufuegen will, bekomme ich immer die Fehlermeldung:
mdadm: Cannot open /dev/sda1: Device or resource busy

Die Partition ist aber NICHT gemounted!
Liegt es am o.a. Image? In /etc/fstab habe ich bereits testweise /dev/sdb5 oder /dev/md0 als Root / eingegeben. Das System bootet mit beiden Einstellungen zeigt aber leider das gleiche Fehlverhalten.
Bei allen anderen Partition hat der gleiche Befehl fuer das jeweilige md-Laufwerk funktioniert.

Wie kann ich mein Raid1-System nun auf der Rootpartion erfolgreich zum Abschluss bringen?
Freue mich ueber jede Idee und Anregung!

Mike


Die Suche schon benuzt?: ja

Art der Firmware: Debian/NSLU2 - 4.0, Kernel 2.6.18-5-ixp4xx

wird ein externer Datenträger genutzt, wenn ja, was für eine Art: 2x SATA-II

Anzeigen

2

Mittwoch, 14. November 2007, 09:50

Hallo,

Das root-Filesystem liegt auf sda1. Diese Partitions ist über die fstab als / (root) gemountet und läßt sich daher dem bestehenden Raid-device nicht hinzufügen.

Dazu gibts schon eine Anleitung hier im Forum, die ich auch benutzt haben. Siehe http://www.nslu2-info.de/showthread.php?t=5543:

Nachdem du das Raid soweit schon am Laufen hast, mußt du die fstab anpassen. Hier mußt du alle Raid-Devices eintragen und die "normalen" Partitionen löschen oder auskommentieren.

Zitat

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/md1 / ext3 defaults,noatime,commit=84600 0 1
/dev/md2 none swap sw 0 0

#/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
#/dev/sda2 none swap sw 0 0
#/dev/scsi/host0/bus0/target0/lun0/part1 /media/usb0 auto rw,user,noauto 0 0
#/dev/scsi/host0/bus0/target0/lun0/part2 /media/usb1 auto rw,user,noauto 0 0
#/dev/scsi/host0/bus0/target0/lun0/part3 /media/usb2 auto rw,user,noauto 0 0
und anschließend

Zitat

mkdir /mnt/debian
mount /dev/md1 /mnt/debian/

update-initramfs -u

cp --no-dereference --preserve --recursive --one-file-system / /mnt/debian

flash-kernel
apex-env printenv
cat etch-modified-mtdblock2.bin > /dev/mtdblock2
apex-env printenv
Du mußt natürlich hier die Partitionen an deine Gegebenheiten anpassen.

Danach rebooten. Jetzt sollte nicht mehr von sda1 sondern von dem halbfertigen Raid auf sdb1 gebootet werden.

Anschließend dann mit madm --add das Raid vervollständigen.
Da die root-Verzeichnisstruktur nun auf md1 (sdb1) liegt und sda1 nicht mehr gemountet ist, funktioniert das hinzufügen problemlos.

Bei mir läuft momentan nur samba auf der Slug. Twonkyvision will ich die Tage noch installieren.

Dann muß ich mich noch um den Standby der Platten bemühen. Also wahrscheinlich logs in ein RAMfs verschieben und ein Logrotate hinzufügen. Hast du dazu schon eine Idee?

Viele Grüße
Ludger

Anzeigen

3

Mittwoch, 14. November 2007, 13:47

Hallo Ludger,

vorweg => es funktioniert nun! Danke fuer die Tipps... :-)

Zitat von »ludger;28087«


Das root-Filesystem liegt auf sda1. Diese Partitions ist über die fstab als / (root) gemountet und läßt sich daher dem bestehenden Raid-device nicht hinzufügen.

Genau hier lag mein Verstaendnisproblem, da /dev/sda1 weder in der fstab eingebunden war noch per mount-Befehl als gemounted angezeigt wurde.
/ => Root war bei mir schon testweise auf /dev/sdb1 und /dev/md0 was alles nicht geholfen hat.

Zitat von »ludger;28087«


Dazu gibts schon eine Anleitung hier im Forum, die ich auch benutzt haben. Siehe http://www.nslu2-info.de/showthread.php?t=5543:

Habe ich gesehen aber nicht als Problemloesung in meinem Fall weiterverfolgt.

Zitat von »ludger;28087«


Nachdem du das Raid soweit schon am Laufen hast, mußt du die fstab anpassen. Hier mußt du alle Raid-Devices eintragen und die "normalen" Partitionen löschen oder auskommentieren.

Das war schon der Fall. Habe nun aber nochmal alle "Standard"-Debian Mount von /dev/sdxx /media/usbx auskommentiert.

Zitat von »ludger;28087«


Danach rebooten. Jetzt sollte nicht mehr von sda1 sondern von dem halbfertigen Raid auf sdb1 gebootet werden.

Abschliessend hat bei mir Folgendes geholfen:
1. mkdir /dev/debian
2. mount /dev/md0 /mnt/debian
3. update-initramfs -u
4. cp --no-dereference --preserve --recursive --one-file-system / /mnt/debian/ => bei mir nicht noetig, da Dateisystem schon auf beiden Partitionen kopiert vorlag
5. vi /etc/fstab => /dev/md0 / ext3 defaults,errors=remount-ro 0 0
6. flash-kernel &
7. apex-env printenv => nur zur Anzeige der aktuellen apex Umgebung
8. cat etch-modified-mtdblock2.bin > /dev/mtdblock2
9. apex-env printenv => nur zur Anzeige der aktuellen apex Umgebung, nur root delay=10s hinzugekommen?
10. reboot
...laengere Wartezeit...
11. mdadm -a /dev/md0 /dev/sdb1

Fragen die aus meiner Sicht noch unklar sind:
1. Ist das erzeugen von "mkdir /dev/debian" und einbinden durch "mount /dev/md0 /mnt/debian" zwingend erforderlich?
2. Was passiert durch "cat etch-modified-mtdblock2.bin > /dev/mtdblock2"? Was steckt in dem Binary?

Zitat von »ludger;28087«


Bei mir läuft momentan nur samba auf der Slug. Twonkyvision will ich die Tage noch installieren.

Bei mir läuft nun samba fuer den Zugriff im heimischen Netz incl. xBox, Apache, Mailserver incl. squirrelmail, ftp.

Zitat von »ludger;28087«


Dann muß ich mich noch um den Standby der Platten bemühen. Also wahrscheinlich logs in ein RAMfs verschieben und ein Logrotate hinzufügen. Hast du dazu schon eine Idee?

Nachdem ich die waerme an meinen Platten gestern ueberprueft habe, moechte ich den Gedanken auch wieder aufleben lassen und nun noch dieses Thema angehen.
Zusaetzlich denke ich ueber eine RAM-Erweiterung auf 128/256MB nach! Waere wohl zum Thema RAMfs sinnvoll.

Gruss
Mike

4

Donnerstag, 15. November 2007, 09:46

Hallo Mike,
freut mich, dass es nun funzt:)!

Ich fang mal mit der zweiten Frage an:
Bei den apex-Commandline-Parametern wird durch den Austausch der Datei ein rootdelay von 10 s hinzugefügt (siehe fette Markierung im folgenden Zitat). Dies stellt sicher, dass die USB-Platten geladen sind bevor die Einrichtung des Raid-Systems erfolgt.
Siehe Abschnitt "Before Rebooting" in http://www.nslu2-linux.org/wiki/Debian/LVM

Zitat

$ sudo apex-env printenv
bootaddr *= 0x00008000
cmdline = console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebug rootdelay=10
cmdline-alt *= console=ttyS0,115200 rtc-x1205.probe=0,0x6f noirqdebug
fis-drv *= nor:0x7e0000+4k
kernelsrc *= fis://kernel
kernelsrc-alt *= fis://kernel
ramdiskaddr *= 0x01000000
ramdisksrc *= fis://ramdisk
ramdisksrc-alt *= fis://ramdisk
startup *= copy -s $kernelsrc $bootaddr; copy -s $ramdisksrc
$ramdiskaddr; wait 10 Type ^C key to cancel autoboot.; boot


Zur 1. Frage:
Das ist halt eine Möglichkeit, das Filesystem auf das Raid-Device zu bringen - mounten und dann draufkopieren.
Da es bei dir ja schon auf beiden Platten drauf war (das war mir nicht bewußt) ist dieser Schritt natürlich hinfällig.

Viele Grüße
Ludger

Social Bookmarks