Jak už to tak bývá, pevný disk není nafukovací a jakkoliv jsme si říkali, že 500 giga nám přece musí stačit, s povzdechem zjišťujeme, že opravdu nestačí a rozhodneme si pořídit ještě další, záložní disk. Ať už se jedná o skutečný pevný disk, který se rozhodneme instalovat do počítače přímo, či o disk připojený externě přes nějaké rozhraní, musíme si jej napřed připravit, abychom jej mohli začít používat. Tato příprava spočívá zejména v tzv. vytvoření oddílů a jejich následném naformátování. Také si řekneme, jak nové oddíly připojit do systému.

Ačkoliv v Linuxu existuje několik klikacích prográmků na práci s disky, my si ukážeme základní práci s diskem pomocí konzolového prográmku gdisk, který se běžně nachází v základní instalaci Fedory.

Poznámka:
Pevný disk rozdělený programem gdisk používá tzv GPT metodu (GUID Partition Table), která má mnoho výhod oproti starší MBR metodě, ale takto připravený disk nemusí být použitelný ve starších verzích známých operačních systémů.

Varování: Vytváření oddílů a jejich formátování na disku zničí veškerá stávající data. Než říznete, raději si to dvakrát změřte.

Kde najdu svůj disk?

Každé připojené zařízení, tedy i disky, se objeví jako nějaký soubor v adresáři /dev. Pevné disky se nejčastěji hlasí jako sd* (SCSI device), kde * je číslo, které disku přidělil operační systém. Hledat disky v kupce sena adresáře /dev není však tou nejbezpečnější metodou a riziko omylu je velké. Uděláme to tedy lépe:

  1. Než připojíme nový disk, podíváme se, jaká bloková zařízení už v systému máme.
    $ sudo lsblk
    NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    sda                                             8:0    0 238.5G  0 disk
    ├─sda1                                          8:1    0     1G  0 part  /boot
    └─sda2                                          8:2    0 237.5G  0 part
      └─luks-5d2200d0-a688-45cb-b2f1-b07a087ae237 253:0    0 237.5G  0 crypt
        ├─fedora-root                             253:1    0    50G  0 lvm   /
        ├─fedora-swap                             253:2    0   5.7G  0 lvm   [SWAP]
        └─fedora-home                             253:3    0 181.8G  0 lvm   /home

    Vidíme, že je připojen jeden disk jménem sda, který je dále rozdělen na dva diskové oddíly, sda1 a sda2. Další údaje pak ukazují detailnější rozdělení pomocí LVM, které v tomto článku rozebírat nebudeme.

  2. Připojíme nový disk. Jedná-li se o pevný disk, vypneme předtím samozřejmě počítač.
  3. Zopakujeme předchozí příkazy a na výpisu poznáme, který disk se zde objevil.
    $ sudo lsblk
    NAME                                          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
    sda                                             8:0    0 238.5G  0 disk
    ├─sda1                                          8:1    0     1G  0 part  /boot
    └─sda2                                          8:2    0 237.5G  0 part
      └─luks-5d2200d0-a688-45cb-b2f1-b07a087ae237 253:0    0 237.5G  0 crypt
        ├─fedora-root                             253:1    0    50G  0 lvm   /
        ├─fedora-swap                             253:2    0   5.7G  0 lvm   [SWAP]
        └─fedora-home                             253:3    0 181.8G  0 lvm   /home
    sdb                                             8:16   0   500M  0 disk

    Vidíme, že v našem případě se jedná o disk se jménem sdb a s tímto diskem budeme nadále pracovat.

Jak si vytvořit oddíly?

Plánování

Ještě nedávno se vycházelo z názoru, že na disku lze vytvořit primární (primary) a rozšířené (extended) oddíly. Primární oddíly mohly být na disku jenom čtyři, a proto bylo nutné pečlivě plánovat, jak oddíly přesně vytvořit.

Omezení se řešilo tak, že se pokud bylo potřeba oddílů více, vytvořily se tři primární oddíly a posléze jeden rozšířený, ve kterém bylo možné vytvořit "libovolné" množství dalších oddílů. Budeme-li pro vytváření pracovat s programem gdisk, nemusíme si s tímto omezením dělat hlavu, protože můžeme vytvořit až 128 oddílů za sebou. Přesto je lepší, když si rozdělení disku rozmyslíme dopředu.

Disk je potřeba si vhodně rozdělit podle toho, jak jej chceme používat. Potřebujeme-li pouze více místa na odkládání filmů, fotek a hudby, stačí nám jeden velký diskový oddíl. Chceme-li si vytvořit disk pro instalaci Fedory, můžeme si také vystačit s jedním diskovým oddílem, ale lepší je, když si disk rozdělíme na několik částí, abychom oddělili například uživatelská a systémová data.

V našem článku si ukážeme, jak rozdělit disk o velikosti 500MB na dva oddíly, které budeme moci využít pro zálohování dat a sdílení dat v síti:

  1. oddíl pro zálohování dat o velikosti 200MB.
  2. oddíl pro sdílení dat v síti o velikosti 300MB.

Ve skutečnosti bychom na takový disk mnoho neuložili, ale pro náš modelový příklad to bude stačit.

Získávání informací o disku

Než začneme, znovu si uvědomíme, na kterém disku chceme vytvářet nové oddíly. V našem případě se jedná o disk pod značkou sdb.

  1. Podíváme se na informace o disku:
    $ sudo gdisk -l /dev/sdb

    Z výstupu se dozvíme následující informace:

    1. Verzi programu gdisk
      GPT fdisk (gdisk) version 1.0.3
    2. Dostupné souborové tabulky na disku a dále, která tabulka se používá pro ukládání metadat. Vidíme, že to je GPT, což je správně.
      Partition table scan:
        MBR: protective
        BSD: not present
        APM: not present
        GPT: present
      
      Found valid GPT with protective MBR; using GPT.

      Jestliže chceme pracovat s celým diskem, nemusíme se na použitou tabulku ohlížet. V případě, že na disku už nějaké oddíly jsou a my jenom přidat další do volného místa, pak se musím přesvědčit, že disk skutečně používá GPT metodu. V případě, že používá MBR, byl by vhodnější nástroj starší fdisk, který s tímto typem tabulky pracuje.

    3. Informace o názvu a velikosti pevného disku.
      Disk /dev/sdb: 1024000 sectors, 500.0 MiB
      Model: source0
    4. Velikost jednotlivých diskových sektorů.
      Sector size (logical/physical): 512/512 bytes
    5. Identifikátor pevného disku, pod kterým se disk vždy hlásí do systému.
      Disk identifier (GUID): 6278184A-3E2D-4E10-9FAA-C9D360817D65
    6. Informace o jednotlivých oddílech. Oddíly zatím nemáme vytvořené, tak se dole v tabulce nic neukáže.
      Partition table holds up to 128 entries
      Main partition table begins at sector 2 and ends at sector 33
      First usable sector is 34, last usable sector is 1023966
      Partitions will be aligned on 2048-sector boundaries
      Total free space is 1023933 sectors (500.0 MiB)
      
      Number  Start (sector)    End (sector)  Size       Code  Name

Vytvoření samotných oddílů

Jako první vytvoříme oddíl o velikosti 200MB.

  1. Spustíme sudo gdisk /dev/sdb a dostaneme se na úvodní obrazovku.
    GPT fdisk (gdisk) version 1.0.3
    
    Partition table scan:
      MBR: protective
      BSD: not present
      APM: not present
      GPT: present
    
    Found valid GPT with protective MBR; using GPT.
    
    Command (? for help):
  2. Pokud jsme v prostředí gdisku poprvé, možná se bude hodit rychlá nápověda, kterou, jak už nám prompt napovídá, získáme po stisknutí otazníku.
    b	back up GPT data to a file
    c	change a partition's name
    d	delete a partition
    i	show detailed information on a partition
    l	list known partition types
    n	add a new partition
    o	create a new empty GUID partition table (GPT)
    p	print the partition table
    q	quit without saving changes
    r	recovery and transformation options (experts only)
    s	sort partitions
    t	change a partition's type code
    v	verify disk
    w	write table to disk and exit
    x	extra functionality (experts only)
    ?	print this menu
    
    Command (? for help):
  3. Stiskneme písmeno n, abychom přidali nový oddíl.
  4. Zvolíme číslo pro nový oddíl a napíšeme ho na příkazový řádek. Je však dobré zachovávat pořadí oddílů, takže stačí když stiskneme Enter a oddíl automaticky číslo uvedené jako default.
    Partition number (1-128, default 1):
  5. Dále si zvolíme umístění prvního sektoru nového oddílu. Doporučuji nechat default nastavení.
    First sector (34-1023966, default = 2048) or {+-}size{KMGTP}:
  6. Pak musíme zvolit poslední sektor oddílu, kterým zároveň definujeme jeho velikost. Abychom nemuseli složitě počítat, kolik sektorů je potřeba pro určitou velikost, využijeme volby + a napíšeme po jaké velikosti se má oddíl ukončit. Pro 200MB, které chceme vytvořit, napíšeme +200M.
    Last sector (2048-1023966, default = 1023966) or {+-}size{KMGTP}: +200M
  7. Zvolíme jaký systém budeme na oddílu provozovat. K tomu je potřeba znát čtyřmístný kód. Ten můžeme získat stiskem klávesy L.
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): 8300
  8. Tím máme oddíl vytvořen. Stisknutím p (vytiskni tabulku oddílů) si zobrazíme stávající tabulku oddílů.
    Command (? for help): p
  9. Přesvědčíme se, že oddíl byl v pořádku vytvořen.
    Number  Start (sector)    End (sector)  Size       Code  Name
       1            2048          411647   200.0 MiB   8300  Linux filesystem
    
    Command (? for help):
  10. Celý postup zopakujeme s dalším oddílem.
    1. Stiskneme n
    2. Přiřadíme číslo oddílu (Enter).
    3. Zvolíme první sektor (Enter).
    4. Zvolíme velikost oddílu (+300M a Enter)
    5. Zvolíme typ souborového systému (0700 pro Windows a Enter)
    6. Zkontrolujeme, že máme oddíly správně vytvořeny (p a Enter)
      Number  Start (sector)    End (sector)  Size       Code  Name
         1            2048          411647   200.0 MiB   8300  Linux filesystem
         2          411648         1023966   299.0 MiB   0700  Microsoft basic data
      
      Command (? for help):

      Všimněme si, že velikost druhého oddílu není přesně 300MB, ale jenom 299. To proto, že gdisk přepočítá velikost na sektory, takže ta se lehce může nakonec lišit. Také, pokud zadáte velikost větší, než kolik je volného místa na disku, gdisk vytvoří pouze tak veliký oddíl, aby se na disk vešel.

  11. Takto vytvořené oddíly zatím nejsou zapsány na disku. Ještě pořád si to můžeme rozmyslet a se ctí ustoupit z boje. Pokud jsme si jistí, že máme oddíly správně, zapíšeme je na disk stisknutím w (Zapsat).
    Command (? for help): w
  12. Přečteme si varování, znovu si to rozmyslíme a pak stiskneme Y (Ano).
    Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!
    
    Do you want to proceed? (Y/N): Y
  13. V tomto okamžiku zapíše gdisk nové rozložení na disk, informuje nás o stavu operace a skončí. V tuto chvíli již na disku nejsou žádná data a disk používá nové rozdělení.
    OK; writing new GUID partition table (GPT) to /dev/sdb.
    The operation has completed successfully.
  14. Zkontrolujeme si, že se oddíly skutečně vytvořily, příkazem lsblk.
    sdb                                          8:16   0   500M  0 disk
    ├─sdb1                                       8:17   0   200M  0 part
    └─sdb2                                       8:18   0   299M  0 part

Formátování oddílů

Nově vytvořené oddíly nemůžeme použít, aniž bychom je naformátovali. To znamená, že musíme na oddíl zapsat informace o souborovém systému, který bude pro ukládání dat použit. V Linuxu si můžeme vybrat mezi mnohými souborovými systémy, které mají své výhody a nevýhody. Můj oblíbený linuxový souborový systém je ext4.

Pokud chceme, aby souborovému systému rozuměly i jiné operační systémy než Linux, musíme vybrat takový, který je podporován. Pro Windows například použijeme buď ntfs nebo fat32. Druhý jmenovaný se běžně používá například na USB klíčenkách, protože mu rozumí i tablety, televize a další rozmanitá zařízení.

Diskové oddíly se formátují variantou příkazu mkfs, podle toho, o který systém máme zájem (viz tabulka).

ext4 mkfs.ext4
ext3 mkfs.ext3
ntfs mkfs.ntfs
FAT32 mkfs.vfat
…​ …​
  1. Na prvním oddíle sdb1 vytvoříme souborový systém typu ext4 a pojmenujeme jej linux_backup.
    $ sudo mkfs.ext4 -L linux_backup /dev/sdb1

    Prohlédneme si výpis, který nám ukáže, že vše proběhlo v pořádku.

    mke2fs 1.43.4 (31-Jan-2017)
    Creating filesystem with 204800 1k blocks and 51200 inodes
    Filesystem UUID: f9ef5926-0243-4990-afd5-6fe34bf2a7a2
    Superblock backups stored on blocks:
    	8193, 24577, 40961, 57345, 73729
    
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
  2. Na druhém oddíle sdb2 vytvoříme souborový systém typu vfat a pojmenujeme jej WINSHARE. Souborové systémy vfat musí mít název velkými písmeny, aby mu rozuměly i starší verze Windows.
    $ sudo mkfs.vfat -n WINSHARE /dev/sdb2

    Výpis je tentokrát o dost kratší.

    mkfs.fat 4.1 (2017-01-24)
  3. Příkazem sudo blkid si zkontrolujeme, že oddíly skutečně existují a mají správné parametry. Výpis je zkrácený.
    /dev/sdb1: LABEL="linux_backup" UUID="f9ef5926-0243-4990-afd5-6fe34bf2a7a2" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="8f33b3ef-7cfa-4220-bbe8-53c054b381e7"
    /dev/sdb2: SEC_TYPE="msdos" LABEL="WINSHARE" UUID="9DA7-0E16" TYPE="vfat" PARTLABEL="Microsoft basic data" PARTUUID="d819dbca-a063-4f80-87f8-bcfb313da757"

Jak nové oddíly připojit?

Automatické připojení oddílu na externím disku.

Když je oddíl na externím disku a tento připojíme za běhu do počítače, operační systém tuto událost zaznamená a oddíl připojí automaticky. Takto se dneska chová většina operačních systémů a Fedora v tomto není výjimkou.

Jestliže se oddíl automaticky nepřipojí, můžete zkusit postup v další části.

Ruční připojení oddílu

K tomu, abychom mohli oddíl připojit ručně, musíme vědět, co a kam chceme připojit. Musíme tedy znát název zařízení a cílový adresář, do kterého bude zařízení připojeno. Také je dobré vědět, jakým souborovým systémem je oddíl naformátován.

V našem případě chceme připojit oddíl /dev/sdb1, na kterém je souborový systém ext4 do adresáře /home/backup.

  1. Vytvoříme cílový adresář.
    $ mkdir /home/backup
  2. Připojíme do něj náš oddíl
    $ sudo mount -t ext4 /dev/sdb1 /home/backup

Od této chvíle můžeme s oddílem normálně pracovat, jakoby to byl jednodušše další adresář.

Poznámka: Nesmíme však zapomenout, že Linux na lepších souborových systémech dodržuje přístupová práva. Vzhledem k tomu, že připojovat oddíly může jenom superuživatel, obyčejný uživatel na něm nemusí mít právo zápisu, dokud mu toto právo nepovolíme.

Následující příkaz umožní zápis na oddíl všem uživatelům, ale rozhodně to není příklad nejlepší praxe: sudo chmod 777 /home/backup.

V tomto článku se můžete o právech dočíst více a zvolit nejlepší strategii pro svůj případ.

Závěr

Představili jsme si postup, jak pomocí konzolového prográmku gdisk můžeme rozdělit pevný disk na jednotlivé oddíly, tyto oddíly naformátovat a připojit do systému. Existují samozřejmě pohodlnější metody s grafickou aplikací, ale tento jednoduchý způsob má v sobě jisté kouzlo, pro které stojí za to o něm vědět.