Evitare auto-reboot di Vista
Problema
Abbiamo un computer fiso sul quale è intallato Window Vista e sul quale è stato installato un vero sistema operativo, ossia Linux in particolare Ubuntu 9.04. Ubuntu non ha ovviamente problemi ne al boot ne in funzionamento, mentre, sempre al boot, quando si sceglie di eseguire Vista il sistema non solo non parte, ma fa riavviare l'intero sistema.
note:
- Il bootloader installato di default è ovviamente GRUB
- Questo problema è stato riscontrato solo su questo computer, mentre su altre configurazioni non vi sono stati mai problemi
- Il partizioneamento del disco è stato fatto in Vista
Hardware
Cercando in internet sembra che altri (per la verità pochissimi) abbiano avuto la stessa esperienza. Viene quindi riportato di seguito il modello di computer, partizioni e note sul software installato.
Hardware: output di lspci
00:00.0 Host bridge: Intel Corporation 82975X Memory Controller Hub (rev c0) 00:01.0 PCI bridge: Intel Corporation 82975X PCI Express Root Port (rev c0) 00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 01) 00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 01) 00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 01) 00:1c.5 PCI bridge: Intel Corporation 82801GR/GH/GHM (ICH7 Family) PCI Express Port 6 (rev 01) 00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 01) 00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 01) 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 01) 00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 01) 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 01) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1) 00:1f.0 ISA bridge: Intel Corporation 82801GH (ICH7DH) LPC Interface Bridge (rev 01) 00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 01) 00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7 Family) SATA IDE Controller (rev 01) 00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 01) 01:00.0 VGA compatible controller: nVidia Corporation NV43 [GeForce 6600 GT] (rev a2) 03:00.0 SATA controller: JMicron Technologies, Inc. JMB361 AHCI/IDE (rev 02) 03:00.1 IDE interface: JMicron Technologies, Inc. JMB361 AHCI/IDE (rev 02) 04:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller 05:00.0 Communication controller: Conexant Systems, Inc. HSF 56k Data/Fax Modem (rev 01) 05:03.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller (rev c0)
La scheda madre è una MSI 975X Platinum
Partizioni: output di fdisk -l /dev/sda (è presente un solo disco SATA)
Disco /dev/sda: 250.0 GB, 250059350016 byte 255 testine, 63 settori/tracce, 30401 cilindri Unità = cilindri di 16065 * 512 = 8225280 byte Identificativo disco: 0xd7fd11c2 Dispositivo Boot Start End Blocks Id System /dev/sda1 * 1 22929 184169468 7 HPFS/NTFS /dev/sda2 22930 22932 24097+ 83 Linux /dev/sda3 22933 30401 59994742+ 5 Esteso /dev/sda5 22933 25364 19535008+ 83 Linux /dev/sda6 25365 25488 995998+ 82 Linux swap / Solaris /dev/sda7 25489 30401 39463641 83 Linux
Configurazione SW:
Configurazione di GRUB relativa a Vista creata da Ubuntu 9.04:
title Windows Vista (loader) rootnoverify (hd0,0) savedefault makeactive chainloader (hd0,0)+1
Soluzione
La soluzione è stata installare LILO al posto di GRUB. Infatti il problema sembra appunto essere legato più al bootloader che ai sistemi installati. La configurazione di LILO proposta di seguito è stata scritta a mano basandosi sui dati di del menù di GRUB (/boot/grub/menu.lst). Di seguito sono riportate le linee principali al solo scopo di confrontarle con lilo.conf:
title Ubuntu 9.04, kernel 2.6.28-11-generic uuid e227f792-bdb5-42ac-8095-391c2b03de65 kernel /vmlinuz-2.6.28-11-generic root=UUID=b3edeecc-925e-4bf2-ad7b-bd39afc0918c ro quiet splash initrd /initrd.img-2.6.28-11-generic quiet title Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode) uuid e227f792-bdb5-42ac-8095-391c2b03de65 kernel /vmlinuz-2.6.28-11-generic root=UUID=b3edeecc-925e-4bf2-ad7b-bd39afc0918c ro single initrd /initrd.img-2.6.28-11-generic title Ubuntu 9.04, memtest86+ uuid e227f792-bdb5-42ac-8095-391c2b03de65 kernel /memtest86+.bin quiet
La configurazione è stata scritta a mano creando il file /etc/lilo.conff in quanto il comando liloconfig (che Ubuntu suggerisce di eseguire quando si installa il pacchetto lilo) non riesce a determinare la configurazione a a causa dell'identificazione dei dischi con UUID. I parametri per UUID verranno comunque passati al kernel.
Configurazione di LiLo: (/etc/lilo.conf)
boot=/dev/sda # map=/boot/map # install=/boot/boot.b root=/dev/sda default=Ubuntu-9.04 prompt timeout=50 #message=/boot/message # UBUNTU OS image=/boot/vmlinuz-2.6.28-11-generic label=Ubuntu-9.04 root=/dev/sda7 initrd=/boot/initrd.img-2.6.28-11-generic append="root=UUID=bb0dfb02-86bb-4c5b-87d9-2c2c4aebb578 ro quiet splash" read-only # UBUNTU in Recovery Mode image=/boot/vmlinuz-2.6.28-11-generic label="Ubuntu-9-recov" root=/dev/sda7 initrd=/boot/initrd.img-2.6.28-11-generic append="root=UUID=bb0dfb02-86bb-4c5b-87d9-2c2c4aebb578 ro single" read-only # UDUNTU MemTest image=/boot/memtest86+.bin label="MemTest" # ALTRI... peggio di WinME other=/dev/sda1 label="Window Vista" table=/dev/sda
note:
- Questa soluzione ha il problema che, nel caso il sistema venga aggiornato, Ubuntu dovrebbe riconfigurare (e reinstallare) Grub. Occorrerebbe quindi trovare il modo di settare LILO come bootloader di default, cosa che si può fare con altri sistemi come SlackWare, SuSE e tantissimi altri.
- Per chi non avesse dimestichezza con LILO, si noti che i parametri passati al kernel in GRUB (ossia quelli che seguono /vmlinuz-2.6.28-11-generic) vengono mappati in LILO con il comando append, mentre il kernel è identificato da image seguito dal percorso completo all'immagine del kernel. Se quindi Ubuntu dovesse ripristinare GRUB con nuovi kernel, è sufficiente modificare questi campi per analogia.
- Per tutte le informazioni relative ai parametri di lilo.conf, riferirsi al manuale (man lilo.conf).