[bglug] lvm
Dario Bertini
berdario@gmail.com
Mer 19 Maggio 2010 18:24:53 CEST
ho un problemino che non so bene da cosa possa essere causato:
innanzitutto, questo è l'output di fdisk -l :
Disk /dev/mmcblk0: 1021 MB, 1021837312 bytes
4 heads, 16 sectors/track, 31184 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Disk identifier: 0x000b04f6
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 * 33 7808 248832 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/mmcblk0p2 7809 31168 747520 8e Linux LVM
Partition 2 does not end on cylinder boundary.
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000b19f2
Device Boot Start End Blocks Id System
/dev/sda1 1 20713 166377141 8e Linux LVM
/dev/sda4 20714 30402 77814765 af HFS / HFS+
ho sul disco interno (in realtà una microsd) una partizione di /boot e
un volume lvm che contiene / e swap (creato direttamente dall'installer
di debian)
e poi ho un disco esterno usb decisamente più capiente, con un altro
volume lvm (e una partizione hfs, ignoratela pure... la toglierò non
appena risolvo questo problema :P )
se faccio login e lancio
vgchange -a y
entrambi i gruppi vengono rilevati per bene e dentro /dev vengono
popolati i device adeguati
il problema è che vorrei evitare di doverlo attivare manualmente...
purtroppo però, quando /etc/init.d/lvm2 viene lanciato, evidentemente il
disco esterno (che tengo sempre collegato) non è ancora pronto e non
viene rilevato
allora ho deciso di realizzarmi una regoletta udev... se v'interessa qui
c'è il contenuto:
KERNEL=="sd?" SUBSYSTEM=="block" ATTRS{idProduct}=="0702"
ATTRS{idVendor}=="1058" RUN+="/home/dario/montalvm.sh &"
all'inizio, al posto di montalvm.sh avevo inserito direttamente
"vgchange -a y" ma vedendolo non funzionare ho deciso di crearmi questo
scriptino...
che altro non fa se non:
#!/bin/sh
sleep 10 && vgchange -a y > /home/dario/dummy
ho aggiunto lo sleep appunto pensando che magari non funzionava a causa
del fatto che magari gli id del disco vengono rilevati prima che il
disco abbia finito il suo spin-up...
ho poi provato per un motivo analogo a spostare il nome della regola (da
80, numero consigliato per regole che fanno partire script/programmi
esterni a 94)... ma direi che non è questo il problema:
ho provato, a sistema avviato a smontare e ricollegare il disco, e lo
script viene lanciato con successo (il timestamp del file dummy viene
aggiornato), ma dal contenuto (e anche dal contenuto di /dev) mi accorgo
come continui a venir rilevato solo il volume presente sul "disco interno"
ho anche pensato che magari lanciando vgchange -a y con sudo dal mio
utente la cosa funzioni, ma che per un qualche strano motivo non
funzioni quando lanciato da udev... ma la cosa non mi torna...
ricapitolando:
lvm funziona: / è su lvm, e questo viene rilevato e montato senza problemi
il volume lvm incriminato funziona: se faccio vgchange -a y loggandomi
col mio utente i device vengono creati per bene
la regola udev funziona: scollegando e ricollegando il disco lo
scriptino viene lanciato di nuovo
dev'essere qualcosa di estremamente banale, ma non riesco proprio a
raccapacitarmi di quale possa esserne la causa... avete qualche idea?
Maggiori informazioni sulla lista
bglug