Differenza tra partizioni avviabili e non avviabili


8

Qual è la differenza tra una partizione avviabile e non avviabile? So che un utente non può avviare un sistema da una partizione contrassegnata come non avviabile e può eseguire l'avvio da un contrassegnato.

Voglio sapere le differenze sottostanti tra questi flag di partizione.


1
Potrebbe essere a conoscenza di cosa può essere utile il processo di avvio di Linux. ibm.com/developerworks/linux/library/l-linuxboot

@anon_anon Uh, quell'articolo, anche se senza dubbio buono, è un po 'vecchio. È del 2006 e discute di GRUB Legacy. Penso che le cose siano cambiate un po 'con GRUB 2. (Se non altro, usano nomi diversi per le " fasi " di avvio in GRUB 2 :). Ho provato a trovare un aggiornamento DeveloperWorks dell'articolo che hai collegato per GRUB 2, ma non l'ho fatto. Il più vicino che potevo venire era questo: migrare su GRUB 2 .
irrazionale John

@Rony Ooops. Aggiornato la mia risposta.
irrazionale John,

Risposte:


6

Sebbene sia stato votato in giù ... forse perché qualcuno pensava che non stesse rispondendo alla domanda ... Penso che la risposta di @ Rony sia un buon inizio per spiegare di cosa tratta la bootbandiera. (In realtà stavo programmando di iniziare la mia risposta con un esempio simile a quello che ha fornito.)

Ero pronto a divagare una risposta su come la bootbandiera è, a questo punto, un residuo storico spesso ignorato (come mostra l'esempio di @ Rony) di un periodo in cui i dischi rigidi erano più piccoli e i bootloader erano molto meno sofisticati.

Ma poi ho scoperto che questo era già stato detto in questa risposta a questa domanda: che cos'è l'opzione "Flag di avvio" durante l'installazione di una distribuzione?

Inoltre, c'era anche un collegamento a un breve articolo sul flag Boot che dice

  • " La sua funzione principale è di indicare a un caricatore di avvio di tipo Windows MS-DOS / MS quale partizione avviare. In alcuni casi viene utilizzato da Windows XP / 2000 per assegnare alla partizione attiva la lettera" C: ". "

Bene, questo è imbarazzante ...

Quando ho affermato che la bootbandiera era un " residuo storico ", supponevo che fosse così perché chiaramente GRUB non aveva bisogno di usarla. Sicuramente Microsoft avrebbe anche " spostato ".

La famosa citazione generalmente attribuita a Oscar Wilde si rivelò troppo vera in questo caso.

Sembra che i caricatori MBR e PBR (partizione Boot Record) utilizzati dai sistemi operativi Windows DO si aspettano che la bootbandiera deve essere impostato correttamente.

Per provare questo ho cancellato il flag di avvio da tutte le partizioni di una VM Windows 8. (Vedi sotto. Se sei curioso, ecco un link al pastebin del risultato completo dello script BootInfo )

Drive: sda     
Disk /dev/sda: 26.8 GB, 26843545600 bytes
255 heads, 63 sectors/track, 3263 cylinders, total 52428800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1               2,048       718,847       716,800   7 NTFS / exFAT / HPFS
/dev/sda2             718,848    52,426,751    51,707,904   7 NTFS / exFAT / HPFS

Quando ho cancellato il flag da entrambe le partizioni, ho ricevuto il messaggio di errore FATAL: INT18: BOOT FAILUREquando ho tentato l'avvio. (Non sono sicuro che provenga dal bootloader MBR di Windows o dall'equivalente di un BIOS della VM.)

Solo per vedere cosa sarebbe successo, ho anche impostato il bootflag sulla partizione "sbagliata", /dev/sda2anziché /dev/sda1. Ciò ha portato alla finestra mostrata nell'immagine qui sotto.

Windows non è riuscito ad avviare la finestra di errore

<sigh/>

Questa esperienza mi fa domandare se Microsoft stia ancora utilizzando lo stesso caricatore del settore di avvio MBR utilizzato per MS-DOS e Windows 3.0 / 3.1?


3

So che un utente non può avviare un sistema da una partizione contrassegnata come non avviabile e può eseguire l'avvio da un contrassegnato.

Dal disco rigido del laptop

# fdisk  -l /dev/sda

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 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: 0x47b94fbe

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     1999999      998976   83  Linux
/dev/sda2         2000000     9999999     4000000   82  Linux swap / Solaris
/dev/sda3        10000000    89999999    40000000   83  Linux
/dev/sda4        90000000   976773167   443386584   83  Linux

Da USB Linux avviabile

# fdisk  -l /dev/sdb

Disk /dev/sdb: 8004 MB, 8004304896 bytes
247 heads, 62 sectors/track, 1020 cylinders, total 15633408 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: 0x000a5395

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2097151     1047552   83  Linux
/dev/sdb2         2097152    15632383     6767616   83  Linux

Non hanno una singola partizione avviabile, mentre sono tutti avviabili.


2

Solo una bandiera nella tabella delle partizioni. L'MBR cerca il flag nelle partizioni ed esegue dalla partizione con il flag "boot".


0

Quando si utilizza il tradizionale MBR Microsoft, il codice nell'MBR identifica come eseguire l'I / O del disco e passa attraverso le partizioni per vedere quale è contrassegnato con il flag di avvio. Solo una partizione dovrebbe essere così contrassegnata. Quindi controlla il primo settore di quella partizione e, se è contrassegnato in modo appropriato, legge quel settore e gli trasferisce il controllo. Se ricordo bene, quel controllo è che il settore termina con 0x55 0xaa.

Il resto della responsabilità per l'avvio ricade sul codice in quel settore e sul codice che, a sua volta, carica.

GRUB2 utilizza molto spesso il proprio MBR e il proprio processo, ignorando questo bit.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.