GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit, zda konkrétní systém potřebuje spouštěcí oddíl?

Znám obecný příběh o tom, proč máme historicky samostatné spouštěcí oddíly:

K čemu je vlastně oddíl /boot?

a na novém počítači bych se s jedním nemusel obtěžovat. Nicméně – instaluji Linux na 20letý systém s BIOSem, který není UEFI (který nelze ani spustit z USB). Nejedná se o počítač s více možnostmi spouštění ani nic složitého:Žádné LVM, žádné šifrování disku, žádný RAID atd.

Jak zjistím, zda je moje konkrétní počítač, s mým konkrétním HDD, potřebujete spouštěcí oddíl?

Poznámka:

  • Pokud na tom záleží, distribuci, kterou jsem chtěl nainstalovat, je antiX Linux 19.3 i386. Vyvolá gparted, aby vám umožnil upravit oddíly.
  • Zavaděč bude přirozeně ten, který moje distribuce nainstaluje, což je AFAICT je grub2.

Přijatá odpověď:

Pokud je systém přibližně z roku 1994 nebo starší, jeho BIOS nemusí být schopen zpracovat disky s geometrií Clusters/Heads/Sectors větší než 1024/16/63, což je limit 504 MiB (528,4 MB). Důvodem byla nepohodlná interakce dvou sad limitů:

  • klasická nerozšířená funkce BIOS INT 13h akceptovala maximální geometrii disku 1024/255/63
  • hardware IDE (PATA) přijme maximální geometrii 65536/16/63
  • Zatím triviální implementace vybíraly pouze nejmenší limit pro každou hodnotu, což vedlo k limitu 1024/16/63.

V červenci 1994 byla vyvinuta nová funkce systému BIOS „Enhanced Disk Drive Services“ (zkráceně EDD), která tento limit obchází. Přesunul bity mezi částmi geometrie Clusters a Heads mezi reprezentací BIOSu a hardwarovým rozhraním IDE (nazývaným „překlad geometrie“) jako řešení tohoto limitu.

Některé verze BIOSu měly také chyby v geometrii disku 4096/16/16 nebo v jeho „přeložené“ podobě 1024/64/63.

Při geometrii disku 16383/16/63 (nebo 1024/255/63 v přeložené podobě) bylo dosaženo maximálního limitu klasického adresování disku C/H/S:vstupní formáty dat funkcí BIOSu zpracovávající tento druh adresování disku prostě neměl dostatek bitů, aby zvládl disky větší než tento. Tohoto limitu bylo dosaženo při velikosti disku 7,87 GiB (8,45 GB), tedy přesně 16 450 560 diskových bloků.

Specifikace IDE (PATA) obsahovala funkci, která to mohla obejít, ale původně byla specifikována jako volitelná funkce a ne všechny BIOSy ji implementovaly. Říkalo se tomu Logical Block Addressing, zkráceně LBA. Jak velikost disků rostla, většina disků vydaných po roce 1996 nebo tak nějak podporovala LBA.

Ale pak byla objevena další chyba BIOSu:některé BIOSy měly chybnou implementaci LBA, která selhala, pokud bylo k reprezentaci čísla bloku disku vyžadováno více než 26 bitů. To ovlivnilo některé verze BIOSu vydané v srpnu 1999 nebo starší a způsobilo to omezení velikosti disku přesně 32 GiB (33,8 GB).

Specifikace LBA, která byla vydána v roce 1994, přidělovala číslu bloku disku pouze 28 bitů, což způsobilo další omezení velikosti disku na přesně 128 GiB. Specifikace ATA-6 vydaná v roce 2003 specifikovala 48bitové verze funkcí přístupu k disku LBA, což je to, co v současnosti používáme u moderních disků SATA. Mělo by to fungovat, dokud velikost disku nevyroste na 128 PiB.

Související:Jak používat výrazy „do“ a „až“ v těchto konkrétních kontextech?

Často bylo možné obejít tato omezení záměrným zadáním nesprávné geometrie disku v BIOSu, sdělením, že disk je menší než limitující limit, a vytvořením /boot oddíl, který zcela zapadá do falešné geometrie.

Někdy (po zavedení podpory LBA) stačilo /boot oddíl byl v rámci příslušného limitu velikosti.

Bootloader by použil rutiny BIOS k načtení linuxového jádra (a volitelně souboru initrd) z tohoto oddílu, a jakmile bude jádro spuštěno, jeho ovladače převezmou přístup k disku, úplně obejdou BIOS a jeho omezení budou irelevantní, dokud bude OS běžel. V tomto okamžiku by skutečná geometrie disku byla obvykle automaticky detekována jádrem.

Takže, co to znamená?

  • Pokud má váš systém datum vydání systému BIOS v roce 2004 nebo starší, možná budete muset vytvořit /boot oddíl, který se zcela vejde do prvních 128 GiB disku, jinak by se v BIOSu nemuselo podařit zavést OS. (To je obvykle problém pouze u nastavení s duálním spouštěním a dalších nastavení s více operačními systémy.)
  • Pokud má váš systém datum vydání systému BIOS před rokem 2000, možná budete chtít vytvořit samostatný /boot oddíl v rámci prvních 32 GiB disku, jen pro jistotu před chybami implementace LBA.
  • Pokud je systém z roku 1996 nebo starší a nikde v nastavení systému BIOS nezmiňuje „LBA“, možná budete muset zadat falešnou geometrii disku a zkontrolovat /boot oddíl je jak v rámci falešné geometrie, tak v rámci prvních 7,87 GiB disku.
  • cokoli staršího:„Patří do muzea.“ 🙂 Ale pokud musíte, podívejte se výše na příslušné limity.

Pokud je datum vydání systému BIOS těsně po datu aktualizace konkrétní specifikace, může, ale nemusí mít aktualizovanou specifikaci:po vydání každé aktualizace specifikace nějakou dobu trvalo, než se nové implementace staly všudypřítomnými.


Linux
  1. Jak zkopírovat rozložení diskových oddílů celého disku pomocí standardních nástrojů?

  2. Jak přeskočit nabídku Grub na systému s duálním spouštěním?

  3. Jak automaticky připojit oddíl Windows při spouštění?

  1. Jak přidat novou spouštěcí položku operačního systému do nabídky Grub2?

  2. Na jakém oddílu je nainstalován Bootloader?

  3. Jak poznám, že jsem na obrazovce?

  1. Změna velikosti spouštěcího oddílu

  2. Je možné zavést Linux z disku GPT v systému BIOS?

  3. Jak zjistím, jaké pevné disky jsou v systému?