ha bent van 1 USB eszköz, a pingvin után lefagy a bootolás

Fórumok

Kedvelem a pinvineket, mert jámbor állatoknak tartom őket.
Emiatt van beállítva a kernelemben, hogy megjelenjen 1 példány.
Csakhogy amikor be van dugva nekem egy USB aljzatba valami egység (tplink modem), akkor nagy valószínűséggel az udev megőrül és nem engedi a bootolási folyamat értelmes továbbhaladását. Az sem segít, ha a kifagyáskor kirántom az egységet az aljzatából. "Prompt" van, de parancsfogadás értelemszerűen nincs, mert bash sincs, parancsértelmező sincs. (..így ez valójában nem is prompt, hanem egy villogó kurzor)
Nem értek az udevhez, speciális ez a jelenség, próbáltam rákeresni 3 nyelven, de fél nap alatt elvesztem a google találatai között.

A tplink-cucc természetesen gond nélkül működik, ha a pingvin-logo megjelenése után kb. 10 másodperccel rakom be.
Meg kell várni, míg az udev marhaságai lefutnak..

Találkoztatok már hasonló anomáliával?

Hozzászólások

hasonlót sem láttam még soha. milyen kernel?

A TP-Link-es cucc látszik-e a /dev könyvtárban úgy mintha háttértár - merevlemez - lenne? Ha a rendszerindítás pl. a grub menüjében így van beállítva:
kernel /boot/vmlinuz-akármi ro root=/dev/sda1 ....

e helyett:

kernel /boot/vmlinuz-akármi ro root=UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ....

(az xx-ek helyén hexadecimális számok vannak)

Előfordulhat hogy kernel előbb akad rá az USB eszközre és csak ezután a rendszerlemezre. Emiatt fölcserélődnek az elnevezések és a TP_Link eszközöd lesz a /dev/sda1, a rendszerlemezed pedig a /dev/sdb1. Mivel a rendszer gyökerére nem a merevlemez egyedi azonosítójával hanem a szimbolikus nevével történik a hivatkozás, a kernel nem találja meg a rendszert és elakad. Ilyenkor csak az újraindítás segít, persze a "vendég" nélkül.

Ez egy lehetséges ok, de érdemes lenne megnézni.

---------

[szerk.]

Ha a grub menüje okozza a gondot akkor át kell írni az UUID-es azonosítási módra. Azonnal fölvetődik a kérdés hogy honnan is vedd az UUID értékét. Egy lehetséges hely: A /dev/.udev/db könyvtár. Lehet benne találni ilyen állományneveket: block:sda, block:sda1, stb. Belekukkantasz abba amelyiken a működő rendszered gyökere van. Az elején - nálam a hatodik sor - találnod kell egy ilyen sort:

S:disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Ez nálam valami ilyesmi:
S:disk/by-uuid/db581da7-ff9c-41a1-a2f8-a04867f89f73

Ebből ez a lényeg: db581da7-ff9c-41a1-a2f8-a04867f89f73

Rendszergazdai jogosultság birtokában a grub menüjében kicseréled a root=/dev/sda1 részt erre:

root=UUID=db581da7-ff9c-41a1-a2f8-a04867f89f73

Azután kiadod ezt a parancsot: grub-install /dev/sda

A /dev/sda nálad nem biztos, mert nem tudom hogy hová telepítetted a rendszered, tehát ezt neked kell helyesen megadnod.

Sajnos nem grubozok, amikor kihozták a grub2-t, szisztematikusan szanáltam az életemből, és lilozok.

Végignézem ezeket, valami ilyesmire gyanakszom egy ideje.
Nem zavaró, csak hát ugye az ember benyomja a power gombot, betolja a perifériákat, és ennyi idő alatt kész a boot, ilyenkor néha bosszantó a dolog, de csak néha.

ihol a lilom, valószínűleg randa, de minden megy benne:

------------

# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
# Append any additional kernel parameters:

append="quiet vt.default_utf8=1"

#append="quiet vt.default_utf8=0"
#append="quiet"

boot = /dev/sda

# Boot BMP Image.
# Bitmap in BMP format: 640x480x8
# bitmap = /boot/salix.bmp
bitmap = /boot/slack.bmp

# Menu colors (foreground, background, shadow, highlighted
# foreground, highlighted background, highlighted shadow):
bmp-colors = 255,20,255,20,255,20
# Location of the option table: location x, location y, number of
# columns, lines per column (max 15), "spill" (this is how many
# entries must be in the first column before the next begins to
# be used. We don't specify it here, as there's just one column.
bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color,
# background color, shadow color.
bmp-timer = 65,29,0,255

# Standard menu.
# Or, you can comment out the bitmap menu above and
# use a boot message with the standard menu:
#message = /boot/boot_message.txt

# Wait until the timeout to boot (if commented out, boot the
# first entry immediately):
prompt
# Timeout before the first entry boots.
# This is given in tenths of a second, so 600 for every minute:
timeout = 30
# Override dangerous defaults that rewrite the partition table:
change-rules
reset
# VESA framebuffer console @ 800x600x64k
#vga = 788
# Normal VGA console
vga = normal
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
# End LILO global section
# Linux bootable partition config begins

#
# elevator=as ==Előretekintő lemezhozzáférés, kevesebbet ugrál a fej, előre kigondolja, mit fog olvasni egy prg
#
# elevator=cfq ==Egyenrangú besorolás, többet ugrál a fej, egyetlen prg sem sajtíthatja ki a lemezt
#
#

#default = 2.6.37.6-smp
#default = 3.1.5-eee
default = 3.2.2-zombie

# a mindenkori kernelteszt
image = /boot/vmlinuz
root = /dev/sda1
label = kerneltest
append="max_loop=150 mem=2048M elevator=as"
# append="max_loop=150 mem=2048M elevator=cfq"
read-only

# vesztartalek az eredeti altalanos kernelrol
# jelenleg minden betarozva
# image = /boot/vmlinuz-huge-smp-2.6.37.6-smp
# root = /dev/sda1
# label = 2.6.37.6-smp
# append="max_loop=150 mem=2048M"
# read-only

image = /boot/bzImage-3.2.2-zombie
root = /dev/sda1
label = 3.2.2-zombie
# append="max_loop=150 mem=2048M"
# append="max_loop=150"
# append="mem=2048M"
read-only

#other = /dev/sdb1
# label = Suxx
#table = /dev/sda

image = /boot/vmlinuzeee
root = /dev/sda1
label = 3.1.5-eee
append="max_loop=150 mem=2048M"
read-only

# Linux bootable partition config ends

Enélkül:
root=/dev/sda1
még a lilo sem futna le. Ez a rendszerem, itt van a /.

root[etc]# fdisk -l

Disk /dev/sda: 4001 MB, 4001292288 bytes
255 heads, 63 sectors/track, 486 cylinders, total 7815024 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x679b7c47

Device Boot Start End Blocks Id System
/dev/sda1 63 7614809 3807373+ 83 Linux
/dev/sda2 7614810 7815023 100107 82 Linux swap

Disk /dev/sdb: 16.0 GB, 15953559552 bytes
147 heads, 63 sectors/track, 3364 cylinders, total 31159296 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2cf7a446

Device Boot Start End Blocks Id System
/dev/sdb1 * 8192 31159295 15575552 b W95 FAT32
root[etc]#

a grubbal semmi bajom, a grub2-től láttam lilát, amikor egy gépen szivességből beállítottam egy dózeres meghajtót. Le kellett gyalulnom a gub2-t, és valahogy odarakni egy grub1-et, majd a megszokott grubból kimásolnom a dózeres dolgokat bele.
A lilo jobban tetszik, már tudok viszonyítani.
Új dolog persze itt is jön néha, de 1-2 éve a Mesterem ezt ajánlotta, így maradok ennél.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

LILO-t nem ismerem testközelből. Grub tudja az UUID-et, kernel paraméternek is megadható UUID-del történő hivatkozás.

A problémád abból adódik, hogy a kernel megszólítja az eszközöket, aztán amelyik hamarabb válaszol, az lesz az sda. Ez néha az a háttértár, amelyen a rendszer van, néha pedig a bedugott pendrive.

Ezzel szemben az UUID egyértelműen, egyedileg azonosítja a filerendszert.

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE

Köszi, lilo le is futott, nemsokára nézem...

root[boot]# lilo
Warning: LBA32 addressing assumed
Added kerneltest
Added 3.2.2-zombie *
Added 3.1.5-eee
One warning was issued.
root[boot]#

Eredmény:

Pingvin után udev dolgai elindulnak, majd ez íródik ki:

VFS: Cannot open root device.

Aztán felsorolja egyértelműen az okot, így valahogy nem jó a dolog. Pedig a lilo megette, lefutott.

Még mindig nem értek a LILO-hoz, de itt gét dologról van szó. A LILO-nak tudnia kell, melyik meghajtó melyik filerendszerén van a kernel. Ugyanakkor a kernelnek is tudnia kell, melyik az ő root filesystem-je. Talán append, vagy valami ilyesmi lesz ez a LILO-ban, de fogalmam sincs róla. Szerintem Google hamar megmondja a megfejtést.

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE

Ezt eddig nem ismertem.
van jó sok cucc:

root[etc]# blkid
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/loop7: TYPE="squashfs"
/dev/sda2: UUID="34bf745b-6ac3-4800-a89b-9c2c8644f319" TYPE="swap"
/dev/sda1: UUID="4d02c74f-637e-4983-b750-4bbe2e99b927" TYPE="ext2"
/dev/loop8: TYPE="squashfs"
/dev/loop9: TYPE="squashfs"
/dev/loop10: TYPE="squashfs"
/dev/loop11: TYPE="squashfs"
/dev/loop12: TYPE="squashfs"
/dev/loop13: TYPE="squashfs"
/dev/loop14: TYPE="squashfs"
/dev/loop15: TYPE="squashfs"
/dev/loop16: TYPE="squashfs"
/dev/loop17: TYPE="squashfs"
/dev/loop18: TYPE="squashfs"
/dev/loop19: TYPE="squashfs"
/dev/loop20: TYPE="squashfs"
/dev/loop21: TYPE="squashfs"
/dev/loop22: TYPE="squashfs"
/dev/loop23: TYPE="squashfs"
/dev/loop24: TYPE="squashfs"
/dev/loop25: TYPE="squashfs"
/dev/loop26: TYPE="squashfs"
/dev/loop27: TYPE="squashfs"
/dev/loop28: TYPE="squashfs"
/dev/loop29: TYPE="squashfs"
/dev/loop30: TYPE="squashfs"
/dev/loop31: TYPE="squashfs"
/dev/loop32: TYPE="squashfs"
/dev/loop33: TYPE="squashfs"
/dev/loop34: TYPE="squashfs"
/dev/loop35: TYPE="squashfs"
/dev/loop36: TYPE="squashfs"
/dev/loop37: TYPE="squashfs"
/dev/loop38: TYPE="squashfs"
/dev/loop39: TYPE="squashfs"
/dev/sdb1: LABEL="Kingston" UUID="4433-2211" TYPE="vfat"
root[etc]#