Ho appena clonato la mia partizione di root (in previsione di un dist-upgrade), ho cambiato lilo.conf e fstab (nella partizione clonata) e ho eseguito lilo.
Ma purtroppo il sistema non si avvia dalla partizione clonata. Riesco a vedere alcune pagine di messaggi del kernel insoliti, poi si ferma.
Per qualche motivo ho provato ad avviare dalla buona partizione, aggiungendo init=/bin/she di nuovo il sistema non si è avviato e si è fermato allo stesso messaggio del kernel. Questo ha fatto credere che "c'è qualcosa di sbagliato in init".
Così ho deciso di girare le tabelle e sono passato init=/sbin/initall'avvio dalla partizione "cattiva" e questo ha funzionato davvero - il sistema si è avviato bene.
Ma non capisco cosa sta succedendo qui. Qualcuno ha una spiegazione per questo?
Ecco il mio lilo, conf
# Automatically added by lilo postinst script
large-memory
lba32
boot=/dev/sda
root=/dev/sda3
install=/boot/boot.b
prompt
delay=30
timeout=30
vga=normal
default="Linux-3.8.2"
image=/boot/vmlinuz-3.8.2-ext4
root=/dev/sda3
label="Linux-3.8.2"
vga=0x317
image=/boot/vmlinuz-3.8.2-ext4
root=/dev/sdd3
label="Linux-3.8.2-bak"
vga=0x317
Modifica: questi sono i messaggi del kernel
[ 3.258242] sd 6:0:0:1: [sdf] Assuming drive cache: write through
[ 3.262845] sd 6:0:0:1: [sdf] Attached SCSI removable disk
se si ferma allora a questo punto e non vedrò nessuno di questi:
[ 3.490096] firewire_core 0000:07:06.0: created device fw0: GUID 00ca308600001a4d, S400
[ 3.513091] nvidia: module license 'NVIDIA' taints kernel.
[ 3.517657] Disabling lock debugging due to kernel taint
[ 3.818951] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=io+mem
[ 3.823236] NVRM: loading NVIDIA UNIX x86 Kernel Module 310.40 Sun Mar 3 20:44:11 PST 2013
init=/sbin/initche il sistema si avvii correttamente. Il comportamento è strano. Il kernel Linux dovrebbe cercare per /sbin/initimpostazione predefinita e se non è in grado di eseguirlo initdovrebbe finire nel panico del kernel.
boot_delay=500. Anche riguardo /bin/sh: probabilmente è collegato dinamicamente. In tal caso, le librerie dinamiche sul filesystem di root?
dmesg|grep 'Command line: 'e cat /proc/cmdlineper vedere i parametri di avvio effettivi. mounte ls -l /proc/1/exeper vedere il vero binario del initprocesso. ldd /proc/1/exee cat /proc/1/maps | grep -o '/.*\.so.*$' | sort | uniqper vedere le librerie dinamiche di init. Sul sistema problematico: prima dell'avvio proverei a rimuovere i dischi non necessari come /dev/sdf.
init=...dell'opzione non modifica il comportamento, è molto probabile che la procedura di avvio abbia esito negativo prima di avviare init ...