Handbook:AMD64/Blocks/Disks/cs

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:AMD64/Blocks/Disks and the translation is 25% complete.
Outdated translations are marked like this.


Tabulky oddílů

Ačkoli je teoreticky možné použít surový, nerozdělený disk k umístění Linuxového systému (např. při tvorbě btrfs RAID), téměř nikdy se tak v praxi neděje. Namísto toho se disky rozdělují na menší, lépe spravovatelná bloková zařízení. V případě systémů amd64 se jim říká oddíly. V současnosti se používají dvě standardní technologie pro dělení oddílů: MBR a GPT.

GPT

"GTP (GUID Partition Table)" používá 64bitové identifikátory oddílů. Místo, kde se ukládají informace o oddílech, je také o mnoho větší, než 512 bytů u MBR, což znamená, že zde není prakticky žádné omezení počtu oddílů u GPT disků. Velikost oddílů je pak vázána mnohem vyšším limitem (téměř 8 ZiB - ano, zettabytů).

Pokud je systémovým softwarovým rozhraním mezi operačním systémem a firmwarem UEFI (namísto BIOSu), GPT je téměř nezbytné, jinak se objeví problémy kompatibility s MBR.

GPT také využívá výhod kontrolních součtů a redundance. Obsahuje CRC32 kontrolní součty k odhalování chyb v hlavičce a tabulce oddílů a na konci disku má zálohu GPT. Tato záložní tabulka může být využita k opravě poškozeného primárního GPT poblíž začátku disku.

Important
There are a few caveats regarding GPT:
  • Using GPT on a BIOS-based computer works, but then one cannot dual-boot with a Microsoft Windows operating system. The reason is that Microsoft Windows will boot in UEFI mode if it detects a GPT partition label.
  • Some buggy (old) motherboard firmware configured to boot in BIOS/CSM/legacy mode might also have problems with booting from GPT labeled disks.

MBR

"MBR (Master Boot Record") používá 32bitové identifikátory startovního sektoru a délky oddílů a podporuje tři typy oddílů: primární, rozšířený a logický. Informace o primárního oddílech jsou uloženy v master boot record samotném - velmi malé (obvykle 512 bytů) oblasti na začátku disku. V důsledku tohoto malého prostoru jsou podporovány pouze čtyři primární oddíly (například /dev/sda1/dev/sda4).

Pro podporu více oddílů je nutné označit jeden z primárních oddílů jak rozšířený oddíl. Tento oddíl pak může obsahovat logické oddíly (oddíly v oddílech).

Important
Ačkoli je většina výrobců základních desek dosud podporuje, tabulky oddílů jsou považovány za zastaralé. Pokud nepoužíváte hardware s původem před rokem 2010, je lepší rozdělit disk pomocí GUID Partition Table. Čtenáři, kteří jsou nuceni použít MBR, by měli vzít v potaz následující informace:
  • Většina základních desek z obodobí po 2010 považuje MBR za zastaralý (podporvaný, ale ne ideální) mód zavádění.
  • Kvůli použití 32bitových identifikátorů nelze tabulky oddílů master boot record použít pro disky s velikostí větší než 2 TiB.
  • Pokud není použit rozšířený oddíl, MBR podporuje pouze 4 diskové oddíly.
  • MBR neposkytuje žádnou zálohu, pokud tedy aplikace nebo uživatel přepíše MBR, veškeré informace o oddílech se ztratí.

Autoři příručky doporučují použití GTP pro všechny instalace Gentoo, kde je to možné.

Pokročilá úložiště

Instalační CD amd64 poskytuje podporu Správce logických oddílů (LVM). LVM zvyšuje flexibilitu při nastavování rozdělení disku. Níže uvedené instalační instrukce se budou soustředit na "běžné" oddíly, nicméně je dobré vědět, že LVM je podporováno, pokud se toužíte vydat touto cestou. Přečtěte si článek o LVM ohledně detailů. Nováčci dejte si pozor: ačkoli je LVM plně podporováno, je mimo záběr tohoto průvodce.

Výchozí schéma oddílů

Throughout the remainder of the handbook, we will discuss and explain two cases: 1) GPT partition table and UEFI boot, and 2) MBR partition table and legacy BIOS boot. While it is possible to mix and match, that goes beyond the scope of this manual. As already stated above, installations on modern hardware should use GPT partition table and UEFI boot; as an exception from this rule, MBR and BIOS boot is still frequently used in virtualized (cloud) environments.

Po celý zbytek této příručky bude využíváno následující schéma oddílů jako jednoduchý příklad rozdělení:

Oddíl Systém souborů Velikost Popis
/dev/sda1 (zavaděč) 2M bootovací oddíl BIOsu
/dev/sda1 ext2 (nebo fat32, pokud používáte UEFI) 128M Zaváděcí oddíl/Systémový oddíl EFI
/dev/sda3 (swap) 512M nebo více swap oddíl
/dev/sda4 ext4 Zbytek disku kořenový oddíl

Pokud je to dostatečné a čtenář se vydá cestou GPT, může okamžitě přejít na Výchozí: Použití parted k rozdělení disku. Ti, kteří se stále zajímají o MBR (hej - stává se to!) a používají výchozí rozdělení, mohou přeskočit na Alternativa: Použití fdisku k rozdělení disku.

fdisk a parted jsou obě utility k rozdělení disku. fdisk je dobře známá, stabilní, doporučená k rozdělení podle MBR, zatímco parted byla jedna z prvních utilit pro správu oddílů podporujících GTP oddíly. Ti, kterým se líbí rozhraní programu fdisk mohou použít gdisk (GPT disk) jako alternativu k parted.

Před uvedením instrukcí k tvorbě se první části budou věnovat detailnějšímu popisu toho, jak mohou být oddíly tvořeny a zmíní nejčastější problémy.

Návrh rozdělení oddílů

Kolik oddílů a jak velkých?

Návrh rozdělení diskových oddílů je značně závislý na požadavcích na systém. V případě velkého množství uživatelů je radno mít adresář /home/ na samostatném oddílu, což zvýší bezpečnost a usnadní zálohování a další údržbu. Pokud je Gentoo instalováno jako e-mailový server, pak by měl být adresář /var na samostatném oddíle, jelikož e-maily jsou uloženy uvnitř adresáře /var/. Správná volba systému souborů pak může maximalizovat výkon. Herní servery budou mít samostatný oddíl /opt/, jelikož většina herního software se instaluje tam. Důvod je stejný jako u adresáře /home/: bezpečnost a zálohy.

Ve většině případů by měly být na Gentoo /usr a /var co velikosti relativně rozsáhlé. /usr obsahuje většinu aplikací v systému a zdrojové kódy jádra Linux v adresáři /usr/src. Ve výchozím stavu se v adresáři /var nachází repozitář ebuildů (umístěný v /var/db/repos/gentoo), který v závislosti na souborovém systému obvykle zabírá okolo 650 MB protoru na disku. Tento odhad nezahrnuje adresáře /var/cache/distfiles a /var/cache/binpkgs, které se budou postupně zaplňovat zdrojovými kódy a (volitelně) binárními balíčky, tak jak budou postupně přidávány do systému.

Volba počtu oddílů a jejich velikosti závisí nejvíce na úvaze o výhodách a nevýhodách daného řešení a výběru nejlepší varianty podle okolností. Oddělené oddíly nebo svazky mají následující výhody:

  • Vyberete nejlepší systém souborů pro každý oddíl nebo svazek
  • Systému nemůže dojít volné místo na disku, pokud bude jediný nefunkční nástroj neustále zapisovat soubory na oddíl nebo svazek
  • Kontrola systému souborů je v případě potřeby časově zkrácena, jelikož kontroly lze činit paralelně (ačkoli tato výhoda se týká spíše více disků než více oddílů).
  • Bezpečnost může být zvýšena připojením některých oddílů v režimu pouze pro čtení, s volbou nosuid (setuid bity jsou ignorovány), noexec (spouštěcí bity jsou ignorovány) atd.


Nicméně velké množství oddílů má také své nevýhody:

  • Při špatné konfiguraci může mít systém mnoho volného místo na jednom oddíle a málo volného místa na jiném.
  • Další nepříjemností je, že je oddělené oddíly - zvláště důležité přípojné body jako /usr/ a /var/ - často vyžadují aby správce při spuštění používal initramfs k připojení oddílů, než se spustí ostatní startovací skripty. Nemusí tomu tak však být vždy, tudíž se výsledky mohou lišit.
  • Dále existuje u SATA a SCSI limit 15 oddílů, pokud disk nepoužívá GPT popisovače.
Note
If you intend to uses Systemd, /usr/ must be available on boot, either as part of the root filesystem or mounted via an initramfs.

A co swap?

Neexistuje perfektní hodnota pro swap oddíl. Účelem swapu je poskytnout úložiště na disku v případě, že interní paměť jádra je pod tlakem. Swap umožňuje jádru přesunout stránky paměti, které nejspíše nebudou v krátkém časovém okamžiku potřebné na disk (swap nebo page-out) a paměť tak uvolnit. Samozřejmě pokud je tato paměť opět potřeba, je nutné tyto stránky opět vložit zpět do paměti (page-in), což zabere nějaký čas (jelikož disky jsou oproti vnitřní paměti pomalé).

Pokud systém nebude spouštět aplikace náročné na paměť nebo pokud má k dispozici hodně paměti, pak pravděpodobně nepotřebuje mnoho prostoru pro swap. Swap je však také používán pro uložení veškeré paměti v případě uspání. Pokud systém bude potřebovat uspávat, pak bude potřeba většího prostoru pro swap, obvykle nejméně v množství paměti instalované v systému.


Použití UEFI

Pokud instalujete Gentoo na systém, který používá k bootování operačního systému UEFI (namísto BIOSu), je důležité vytvořit systémový oddíl EFI (ESP). Níže uvedené instrukce pro parted obsahují vodítka nezbytná ke zdárnému provedení této operace.

ESP dále musí být variantou oddílu FAT (někdy zobrazovaného na Linuxových systémech jako vfat). Oficiální specifikace UEFI zmiňuje že firmware rozpozná systém souborů FAT12, 16 nebo 32, nicméně FAT32 je u ESP doporučený. Pokračujte naformátováním ESP na FAT32:

root #mkfs.vfat -F 32 /dev/sda1
Important
Pokud pro oddíl boot nepoužijete variantu FAT, pak nelze garantovat že firmware UEFI vašeho sytému bude schopen najít zavaděč (nebo jádro Linux) a nejspíše nebude schopný spustit systém!


Co je to bootovací oddíl BIOSu?

Bootvací oddíl BIOSu je velmi malý (1 až 2 MB) oddíl, do něhož mohou zavaděče jako GRUB2 umístit dodatečná data, která se nevejdou do přiděleného úložiště (několik stovek bytů v případě MBR) a která nemohou být umístěna jinam.


Alternativa: Použití fdisku k rozdělení disku

Následující části vysvětlují jak vytvořit příkladmé rozdělení disku pomocí příkazu fdisk. Příkladmé rozdělení oddílů bylo zmíněno dříve:

Oddíl Popis
/dev/sda1 zaváděcí oddíl BIOSu
/dev/sda1 zaváděcí oddíl
/dev/sda3 oddíl swap
/dev/sda4 kořenový oddíl

Rozložení oddílů si změňte podle osobních preferencí.

Prohlížení současného rozdělení oddílů

fdisk je populární a silný nástroj k rozdělení disku na oddíly. Spusťte jej nad diskem (v našem případě použijeme /dev/sda):

root #fdisk /dev/sda

Použijte p k zobrazení aktuální konfigurace rozdělení disku:

Command (m for help):p
Disk /dev/sda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
  
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1   *         1        14    105808+  83  Linux
/dev/sda2            15        49    264600   82  Linux swap
/dev/sda3            50        70    158760   83  Linux
/dev/sda4            71      2184  15981840    5  Extended
/dev/sda5            71       209   1050808+  83  Linux
/dev/sda6           210       348   1050808+  83  Linux
/dev/sda7           349       626   2101648+  83  Linux
/dev/sda8           627       904   2101648+  83  Linux
/dev/sda9           905      2184   9676768+  83  Linux

Tento konkrétní disk byl nastaven tak, aby obsahoval sedm linuxových souborů systémů (každý z odpovídajícím oddílem označeným jako "Linux") a oddíl swap (označený jako "Linux swap").

Odstranění všech oddílů s fdiskem

Type g to create a new GPT disklabel on the disk; this will remove all existing partitions.

Command (m for help):g
Created a new GPT disklabel (GUID: 87EA4497-2722-DF43-A954-368E46AE5C5F).

Nejprve odstraníme všechny oddíly z disku. Pro vymazání oddílu stiskněte d. Vymazání existujícího oddílu /dev/sda1:

Command (m for help):d
Partition number (1-4): 1

Oddíl byl nyní připraven k vymazání. Nadále se nebude zobrazovat ve výpisu oddílů (p), ale nebude odstraněn do doby, než budou změny uloženy. To umožňuje uživatelům ukončit operaci, pokud udělali chybu - v takovém případě stiskněte ihned Enter a enter a oddíl nebude vymazán.

Opakovaně stiskněte p pro zobrazení výpisu oddílů a stiskněte d a číslo oddílu k vymazání. Nakonec bude tabulka oddílů prázdná:

Command (m for help):p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
  
Device Boot    Start       End    Blocks   Id  System

Nyní, když je tabulka oddílů v paměti prázdná, můžeme vytvářet oddíly.

Tvorba bootovacího oddílu BIOSu

Nejprve vytvořte malý bootovací oddíl BIOSu. Pro vytvoření nového oddílu stiskněte n, potom p pro vytvoření primárního oddílu, následně 1 ke zvolení prvního primárního oddílu. Na dotaz ohledně prvního sektoru se ujistěte, že bude začínat na 2048 (což je třeba pro zavaděč) a stiskněte Enter. Na dotaz ohledně posledního sektoru napište +2M k vytvoření oddílu velkého 2 MB.

Command (m for help):n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First sector (64-10486533532, default 64): 2048
Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +2M

Označte oddíl pro účely UEFI:

Command (m for help):t
Selected partition 1
Hex code (type L to list codes): 4
Changed system type of partition 1 to 4 (BIOS boot)

Vytvoření swap oddílu

Pro vytvoření swap oddílu stiskněte n pro vytvoření nového oddílu, poté p pro vytvoření primárního oddílu. Po té stiskněte 3 pro vytvoření třetího primárního oddílu, /dev/sda3. Na dotaz ohledně prvního sektoru stiskněte Enter. Na dotaz ohledně posledního sektoru napište +512M (nebo jinou hodnotu dle potřebného prostoru pro swap) k vytvoření oddílu velkého 512 MB.

Tvorba bootovacího oddílu

Po tomto všem stiskněte t k nastavení typu oddílu, stisknutím 3 vyberete právě vytvořený oddíl a po té vepiště "82" pro nastavení typu na "Linux Swap".

Command (m for help):t
Partition number (1,2, default 2): 2
Partition type (type L to list all types): 19
 
Changed type of partition 'Linux filesystem' to 'Linux swap'.

Vytvoření kořenového oddílu

Nakonec vytvoříme kořenový oddíl, k vytvoření nového oddílu stiskněte n, po té p pro vytvoření primárního oddílu. Po té stiskněte 4 k vytvoření čtvrtého primárního oddílu /dev/sda4. Na dotaz ohledně prvního sektoru stiskněte Enter. Na dotaze ohledně posledního sektoru, stiskněte Enter, čímž vytvoříte zaplníte zbývající prostor na disku. Po dokončení těchto kroků by mělo stisknutí p zobrazit tabulku oddílu, která bude vypadat podobně jako takto:

Command (m for help):p
Disk /dev/sda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
  
   Device Boot    Start       End    Blocks   Id  System
/dev/sda1             1         3      5198+  ef  EFI (FAT-12/16/32)
/dev/sda2   *         3        14    105808+  83  Linux
/dev/sda3            15        81    506520   82  Linux swap
/dev/sda4            82      3876  28690200   83  Linux

Uložení rozložení oddílů

K uložení rozdělení oddílů disků a ukončení programu fdisk stiskněte w.

Command (m for help):w

Po té, co jsme vytvořili oddíly, je čas umístit na ně systém souborů.

Partitioning the disk with MBR for BIOS / legacy boot

The following explains how to create the example partition layout for a MBR / BIOS legacy boot installation. The example partition layout mentioned earlier is now:

Partition Description
/dev/sda1 Boot partition
/dev/sda2 Swap partition
/dev/sda3 Root partition

Change the partition layout according to personal preference.

Viewing the current partition layout

Fire up fdisk against the disk (in our example, we use /dev/sda):

root #fdisk /dev/sda

Use the p key to display the disk's current partition configuration:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 21AAD8CF-DB67-0F43-9374-416C7A4E31EA
 
Device        Start      End  Sectors  Size Type
/dev/sda1      2048   526335   524288  256M EFI System
/dev/sda2    526336  2623487  2097152    1G Linux swap
/dev/sda3   2623488 19400703 16777216    8G Linux filesystem
/dev/sda4  19400704 60549086 41148383 19.6G Linux filesystem

This particular disk was until now configured to house two Linux filesystems (each with a corresponding partition listed as "Linux") as well as a swap partition (listed as "Linux swap"), using a GPT table.

Creating a new disklabel / removing all partitions

Type o to create a new MBR disklabel (here also named DOS disklabel) on the disk; this will remove all existing partitions.

Command (m for help):o
Created a new DOS disklabel with disk identifier 0xe04e67c4.
The device contains 'gpt' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.

For an existing DOS disklabel (see the output of p above), alternatively consider removing the existing partitions one by one from the disk. Type d to delete a partition. For instance, to delete an existing /dev/sda1:

Command (m for help):d
Partition number (1-4): 1

The partition has now been scheduled for deletion. It will no longer show up when printing the list of partitions (p, but it will not be erased until the changes have been saved. This allows users to abort the operation if a mistake was made - in that case, type q immediately and hit Enter and the partition will not be deleted.

Repeatedly type p to print out a partition listing and then type d and the number of the partition to delete it. Eventually, the partition table will be empty:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe04e67c4

Now we're ready to create the partitions.

Creating the boot partition

First, create a small partition which will be mounted as /boot. Type n to create a new partition, followed by p for a primary partition and 1 to select the first primary partition. When prompted for the first sector, make sure it starts from 2048 (which may be needed for the boot loader) and hit Enter. When prompted for the last sector, type +256M to create a partition 256 Mbyte in size:

Command (m for help):n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-60549119, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-60549119, default 60549119): +256M
 
Created a new partition 1 of type 'Linux' and of size 256 MiB.

Creating the swap partition

Next, to create the swap partition, type n to create a new partition, then p, then type 2 to create the second primary partition, /dev/sda2. When prompted for the first sector, hit Enter. When prompted for the last sector, type +4G (or any other size needed for the swap space) to create a partition 4GB in size.

Command (m for help):n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (526336-60549119, default 526336): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-60549119, default 60549119): +4G
 
Created a new partition 2 of type 'Linux' and of size 4 GiB.

After all this is done, type t to set the partition type, 2 to select the partition just created and then type in 82 to set the partition type to "Linux Swap".

Command (m for help):t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 82

Changed type of partition 'Linux' to 'Linux swap / Solaris'.

Creating the root partition

Finally, to create the root partition, type n to create a new partition. Then type p and 3 to create the third primary partition, /dev/sda3. When prompted for the first sector, hit Enter. When prompted for the last sector, hit Enter to create a partition that takes up the rest of the remaining space on the disk. After completing these steps, typing p should display a partition table that looks similar to this:

Command (m for help):p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors
Disk model: DataTraveler 2.0
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe04e67c4
 
Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1          2048   526335   524288  256M 83 Linux
/dev/sda2        526336  8914943  8388608    4G 82 Linux swap / Solaris
/dev/sda3       8914944 60549119 51634176 24.6G 83 Linux

Saving the partition layout

To save the partition layout and exit fdisk, type w.

Command (m for help):w

Now it is time to put filesystems on the partitions.