[Ubuntu 8.10] Boot problemen met Port Multiplier

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Aesculapius
  • Registratie: Juni 2001
  • Laatst online: 17:20
Ik heb een Addonics externe casing met 6 sata harddrives erin die met twee eSata kabels zijn verbonden met mijn server (via Sil3124 chip). Die draait sinds kort de nieuwe ubuntu 8.10 server, voorheen 7.04 server (zelf gecompilede kernel met MP support).

Een van de eSata kabels hangt rechtstreeks aan een harddisk, omdat de port multiplier in de externe toren slechts vijf harde schijven kan aansturen. Het probleem ligt bij de tweede aansluiting, naar de port multiplier; support hiervoor was voorheen niet aanwezig in de kernel en je moest zelf libsata patchen in de kernel om te zorgen dat het werkte. In de kernel die 8.10 gebruikt is de support wel aanwezig, en het geheel lijkt ook te werken, maar op een nogal onhandige wijze.

Ik moet namelijk de server opstarten zonder dat de storage-toren aanstaat. Dan komt hij goed door de boot heen (hij boot van een normale IDE schijf op /dev/sdb1). Is ubuntu opgestart, dan kan ik de toren aanzetten en zorgt de hot-plug feature er op den duur voor dat alle schijven correct gedetecteerd worden. Vanaf dan kan ik ze prima gebruiken.

Echter, als ik de toren al aan heb staan voordat ubuntu boot (wat bijv. bij een auto-reboot na stroomonderbreking zo gaat zijn), dan blijft de boot hangen op het punt waar de Port Multiplier gedetecteerd wordt. Ik word dan in een busybox gegooid met de melding: ALERT: Root device /dev/sdb1 does not exist!

Kennelijk zorgt de initialisatie van die port multiplier module dus ervoor dat drives "gehusseld" worden en er niet meer verder geboot kan worden. Aangezien ik niet echt zin heb om telkens naar die server te moeten gaan als de zooi reboot, zoek ik naar een oplossing. Het liefst een die de oorzaak aanpakt (waarom "mag" de PortMultiplier 1.1 module /dev/sdb1 wegmieteren?) maar desnoods door de symptonen te bestrijden en de Port Multiplier te verplaatsen naar een andere plek in het bootscript. Hoewel ik wel enigszins mijn weg kan vinden in ubuntu, ben ik nog niet ervaren genoeg om te weten waar ik dit zou moeten aanpassen... Ik kom bijvoorbeeld ook niet achter het complete bootlog van de keren dat het fout gaat en ik in busybox beland.

Uiteraard zijn de heren GoT en Google reeds geraadpleegd, maar het hele eSata en Port Multiplier verhaal lijkt nogal in de kinderschoenen te staan (hoewel het al jaren bestaat).

Is er toevallig iemand die dit bekend in de oren klinkt of een idee heeft waar ik zou kunnen kijken?
root@hermes:~# uname -a
Linux hermes 2.6.27-7-server #1 SMP Tue Nov 4 20:18:35 UTC 2008 i686 GNU/Linux
/var/log/messages:
Nov 29 01:19:38 hermes kernel: [ 0.000000] Kernel command line: auto BOOT_IMAGE=Linux ro root=/dev/sdb1

Zeg wat je doet en doe wat je zegt, dan wordt de hele wereld een stukje leuker


Acties:
  • 0 Henk 'm!

  • frapex
  • Registratie: Januari 2001
  • Nu online

frapex

got r00t

Dit komt omdat de andere harde schijven tegelijk initialiseren met je primaire interne bootschrijf.
Omdat je een recente distributie gebruikt en recente kernel kan je wat nieuwerwetse oplossingen proberen.

Gebruik in plaats van /dev/sdb1 als je root device (/etc/fstab):
- /dev/disk/by-uuid/<device_uuid>
- /dev/disk/by-id/<device_id>

In GRUB moet je ook iets veranderen (bovenstaande notatie kan ook werken):
root=UUID=<device_uuid>

Meer info: http://manual.sidux.com/nl/part-uuid-nl.htm

[ Voor 22% gewijzigd door frapex op 29-11-2008 23:15 ]

Asus A7N8X-X, AMD XP2400+, 2.5GB Infineon+Samsung DDR333, Radeon x1600 Pro, 2x Fujitsu MAP3735NC 10Krpm SCSI 73GB, Seagate Medalist 17.2GB, LiteOn DVD 16x48x, LiteOn 48x12x48, Promise UDMA100/TX2, Adaptec 2110S Ultra3, 2x EIZO FlexScan (F931 & F930)


Acties:
  • 0 Henk 'm!

  • Aesculapius
  • Registratie: Juni 2001
  • Laatst online: 17:20
that makes sense...

Ik heb de bootline verandert naar root=UUID=11e1167c-bb4a-......etc. Maar hetzelfde probleem.

Heb het laatste gedeelte van de boot maar even overgeschreven:
Ata2: SATA Link up 3.0 Gbps (SStatus 123 SControl 0)
Ata2.15 Port Mulitplier 1.1, 0x1095:0x3726 r23, 6 ports, feat 0x1/0x9
Done.
Gave up waiting for root device. Common problems are: {heel verhaal over rootdelay en /proc/cmdline}

Alert! /dev/disk/by-uuid/11e11676c-bb4a-...... does not exist. Dropping to a shell.
....en ik zit weer in busybox. Als ik naar (in BusyBox) /dev ga, is er overigens helemaal geen subdir "disk"?

Zeg wat je doet en doe wat je zegt, dan wordt de hele wereld een stukje leuker


Acties:
  • 0 Henk 'm!

  • frapex
  • Registratie: Januari 2001
  • Nu online

frapex

got r00t

De /dev/disk/*/* symbolic links worden door udevd aangemaakt. Kijk eens of dat proces wel draait als je naar de busybox gedropt wordt. Wordt udevd uberhaupt wel opgestart via initramfs?

Probleem komt vaker voor:
- http://fixunix.com/debian...-have-udev-installed.html
- https://bugs.launchpad.ne...nitramfs-tools/+bug/21481
- http://ubuntuforums.org/showthread.php?t=968968

Mogelijk oplossing:
- http://ubuntuforums.org/s...hp?p=6107702&postcount=34

Je kan ook proberen initramfs-tools te upgraden:
- https://launchpad.net/ubuntu/+source/initramfs-tools

[ Voor 57% gewijzigd door frapex op 30-11-2008 15:33 ]

Asus A7N8X-X, AMD XP2400+, 2.5GB Infineon+Samsung DDR333, Radeon x1600 Pro, 2x Fujitsu MAP3735NC 10Krpm SCSI 73GB, Seagate Medalist 17.2GB, LiteOn DVD 16x48x, LiteOn 48x12x48, Promise UDMA100/TX2, Adaptec 2110S Ultra3, 2x EIZO FlexScan (F931 & F930)


Acties:
  • 0 Henk 'm!

  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 09-09 10:57
frapex schreef op zaterdag 29 november 2008 @ 23:08:
Gebruik in plaats van /dev/sdb1 als je root device (/etc/fstab):
- /dev/disk/by-uuid/<device_uuid>
- /dev/disk/by-id/<device_id>
Daar gaat het dus fout, inderdaad, wat frapex aangeeft.
In fstab moet je UUID=<uuid> gebruiken en geen udev filesystem.

Kia e-Niro 2021 64 kWh DynamicPlusLine. See my GitHub and my blog for articles on security and other stuff.


Acties:
  • 0 Henk 'm!

  • Aesculapius
  • Registratie: Juni 2001
  • Laatst online: 17:20
wel, udevd is in ieder geval zeker geinstalleerd (zonder eSata-toren boot hij immers prima vanaf de UUID). Als ik in busybox kijk naar de output v an udevd krijg ik dit:
(initramfs)/udevd
udevd[2190]: init_udevd_socket: bind failed: address already in use
Error initializing udevd socket
Uit http://fixunix.com/debian...-rootdelay-parameter.html haal ik:
current rootdelay kicks in to late (on root mount) and doesn't
work for lilo or md/evms/lvm root settings.
Maar dat is een bericht van anderhalf jaar geleden...

Ik gebruik trouwens lilo als bootmanager maar dat maakt denk ik weinig uit? /etc/fstab staat al vol met alleen maar UUID's, dus ook daar zit het probleem niet - bovendien denk ik dat het probleem iets eerder in de boot-sequence ligt.

Zelfs met een rootdelay=150 kom ik nog in busybox, maar als ik daar even idle blijf - ik ging eten, dus ong. 15 min. - zie ik dat de externe drives langszaam tot leven komen en een voor een herkend worden. Die delay is voor zover ik het tot nu toe altijd ervaren had bij port multipliers - gebruikelijk. Toen ik terug kwam van eten en een simpele 'return' ingaf, ging hij wel door met het boot-proces en was alles okay.

Dus: waar kan ik ofwel het laden van de portmultiplier uitstellen tot na het punt waar het root filesystem is geladen, of hoe kan ik die module aanpassen om als daemon in de achtergrond zijn werk te doen ipv het bootscript te laten vasthangen?

Ik zie trouwens in mijn bootlog dat het toch niet helemaal goed ging; mijn root is nu gemount naar /dev/sdh1, terwijl dit /dev/sdb1 moet zijn...:
root@hermes:/#mount
/dev/sdh1 on / type xfs (rw,relatime)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,nosuid,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
/dev/sda1 on /media/sda1 type reiserfs (rw)
/dev/sda2 on /media/sda2 type reiserfs (rw)
/dev/sdb1 on /media/st/st01 type reiserfs (rw)
/dev/sdc1 on /media/st/st02 type reiserfs (rw)
/dev/sdd1 on /media/st/st03 type reiserfs (rw)
/dev/sde1 on /media/st/st04 type reiserfs (rw)
/dev/sdf1 on /media/st/st05 type reiserfs (rw)
/dev/sdg1 on /media/st/st06 type reiserfs (rw)
root@hermes:/media/st/st06# cat /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
# /dev/sdb1
UUID=1e11676c-bb4a-44a0-add9-630b533c0e08 / xfs relatime 0 1
# /dev/sdb5
UUID=de404bbf-1846-4240-8c18-5d7e200ee388 none swap sw 0 0

/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0

# /dev/sda1
UUID=dc998ad0-5c31-4bad-b37b-28adae0905f9 /media/sda1 auto defaults 0 0
# /dev/sda2
UUID=a6ba65c0-47f4-4c6c-a941-761ff5fcad9a /media/sda2 auto defaults 0 0

# Storage Tower
# /dev/sdc1
UUID=6ee103ca-87b6-4b6d-98e2-d17ec11adf12 /media/st/st01 auto defaults 0 0
# /dev/sdd1
UUID=20dd5f97-25a6-4283-bcbd-5bb5b8c8e386 /media/st/st02 auto defaults 0 0
# /dev/sde1
UUID=aad7b381-62f3-4fd7-a6d7-cc3a043e221c /media/st/st03 auto defaults 0 0
# /dev/sdf1
UUID=fd89addf-f591-4dc8-9b66-bf7aa37b2584 /media/st/st04 auto defaults 0 0
# /dev/sdg1
UUID=aea678af-688d-4f35-aefc-1efe7315481b /media/st/st05 auto defaults 0 0
# /dev/sdh1
UUID=5f874aba-3c4e-4f38-b820-940e62fa9870 /media/st/st06 auto defaults 0 0
grrrrr....

Het hele bootlog
Vooral de regel
Nov 30 16:15:34 hermes kernel: [ 312.190086] ata2.01: failed to IDENTIFY (I/O error, err_mask=0x5)
lijkt mij naar het probleem te wijzen, helaas niet naar de oplossing :(

[ Voor 50% gewijzigd door Aesculapius op 30-11-2008 16:37 . Reden: mount points toegevoegd ]

Zeg wat je doet en doe wat je zegt, dan wordt de hele wereld een stukje leuker


Acties:
  • 0 Henk 'm!

  • frapex
  • Registratie: Januari 2001
  • Nu online

frapex

got r00t

Je maakt toch gebruik van UUID? Dan maakt het toch niet uit dat je bootschrijf /dev/sdh1 wordt?

Je kan de volgorde alleen veranderen als de primary bootschrijf aan een andere controller zit dan je harddisk box. Hetzelfde geldt voor het uitstellen van het laden van de driver.

initramfs-tools heeft vast een configuratie in /etc waarin je bepaalde drivers kan uitsluiten.

Zie ook: http://man.he.net/man8/initramfs-tools
Volgorde aanpassen in: /etc/initramfs-tools/modules

[ Voor 76% gewijzigd door frapex op 30-11-2008 17:11 ]

Asus A7N8X-X, AMD XP2400+, 2.5GB Infineon+Samsung DDR333, Radeon x1600 Pro, 2x Fujitsu MAP3735NC 10Krpm SCSI 73GB, Seagate Medalist 17.2GB, LiteOn DVD 16x48x, LiteOn 48x12x48, Promise UDMA100/TX2, Adaptec 2110S Ultra3, 2x EIZO FlexScan (F931 & F930)


Acties:
  • 0 Henk 'm!

  • Aesculapius
  • Registratie: Juni 2001
  • Laatst online: 17:20
Tsjah, daar heb je een punt. Ik dacht even dat het met het maken van symlinks lastig zou worden; ik heb immers achteraf alles omgeschreven naar UUIDs en nu zou op plekken waar nog van /dev/sdb1 gebruik gemaakt wordt, er wellicht wat fout kunnen gaan (/etc/lilo.conf en /etc/fstab aangepast, meer (nog) niet).

De primaire drive hangt gewoon aan de onboard ide-controller, de externe harddrive bay aan een silicon image 3124 pci-kaart. Ik zal eens op zoek gaan naar die initramfs config.... bedankt zo ver.

edit: inmiddels wat wijzer over de manier waarop initramfs werkt (door het init script door te bladeren), maar helaas kan ik op beide plaatsen waar het zou moeten staan (/etc/initramfs-tools/scripts/ en /usr/share/initramfs-tools/scripts) geen script vinden waar de port-multiplier module in zit. Al met al ben ik dus nog niet veel verder... Het booten lijkt allemaal goed te gaan (en de root wordt volgens mij goed gedetecteerd), maar als de drives aan de PM dus gedetecteerd worden, worden bestaande udev-links weggegooid ofzo? Een update van initramfs-tools lijkt me een reële optie, maar die moet ik dan handmatig installeren somehow? (ook het meenemen van backports in de sources.list geeft geen nieuwe versie)...

[ Voor 41% gewijzigd door Aesculapius op 30-11-2008 23:11 . Reden: updateje ]

Zeg wat je doet en doe wat je zegt, dan wordt de hele wereld een stukje leuker


Acties:
  • 0 Henk 'm!

  • frapex
  • Registratie: Januari 2001
  • Nu online

frapex

got r00t

Goed, late reactie, maar ik wil hier toch nog even op reageren, omdat ik nu zelf ook aan het spelen ben met initramfs-tools

/etc/initramfs-tools/initramfs.conf:
blacklist=module1,module2,module3

"disables load of specific modules. Use blacklist=module1,module2,module3 bootparameter."

Je kan dit ook rechtstreeks opgeven bij de bootprompt, aldus man-page initramfs-tools.8

Asus A7N8X-X, AMD XP2400+, 2.5GB Infineon+Samsung DDR333, Radeon x1600 Pro, 2x Fujitsu MAP3735NC 10Krpm SCSI 73GB, Seagate Medalist 17.2GB, LiteOn DVD 16x48x, LiteOn 48x12x48, Promise UDMA100/TX2, Adaptec 2110S Ultra3, 2x EIZO FlexScan (F931 & F930)

Pagina: 1