Pokud jste správce systému, je správa oddílu pevného disku vašeho linuxového serveru kritickým úkolem.
V tomto tutoriálu se zaměříme na to, jak používat nástroj příkazového řádku sfdisk ke správě oddílů pevného disku.
Zatímco sfdisk je podobný fdisk, existuje jen málo činností manipulace s oddíly, které lze v sfdisku provádět velmi snadno. Například můžete vytvořit nové oddíly neinteraktivní metodou pomocí sfdisk.
V tomto kurzu jsou popsány následující aktivity sfdisk:
- Zobrazit existující diskové oddíly
- Změnit jednotky zobrazení (velikost zobrazení v MB)
- Vytvořte nové diskové oddíly (interaktivní metoda)
- Ověřte konzistenci tabulky oddílů
- Zobrazit celkovou velikost oddílu
- Vypsat podrobnosti o oddílu disku do textového souboru
- Vytvořit nové oddíly z textového souboru (neinteraktivní metoda)
- Zobrazit podrobnosti o rozšířeném oddílu
- Zobrazit geometrii disku pro ladění
- Zobrazit všechny typy diskových oddílů
- Manipulujte pouze s jedním diskovým oddílem
- Režim zkušebního provozu pro ověření
- Označit konkrétní oddíl jako spouštěcí
- Změnit typ oddílu
- Vytvořte nové oddíly ze skriptu Shell (neinteraktivní metoda)
1. Zobrazit existující diskové oddíly
Pomocí volby -l můžete zobrazit všechny diskové oddíly. -l znamená seznam.
Ve výchozím nastavení se zobrazí oddíly všech disků na vašich systémech.
# sfdisk -l Disk /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 * 0+ 1044- 1045- 8387584 83 Linux /dev/sda2 0 - 0 0 0 Empty /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Ve výše uvedeném:
- Zobrazuje oddíly pro zařízení sda i sdf.
- sda má pouze jeden oddíl. tj. sda1. Ale volba -l bude stále vždy zobrazovat informace o všech 4 primárních oddílech. Protože v tomto příkladu má sda pouze jeden oddíl (tj. sda1), u zbývajících 3 oddílů (sda2, sda3, sda4) bude v posledním sloupci uvedeno „Prázdné“.
- Zařízení sdf nemá žádný oddíl. tj. na tomto zařízení ještě nebylo nic vytvořeno. Pro toto zařízení tedy nic neuvádí.
Můžete také zobrazit diskové oddíly konkrétního zařízení zadáním názvu zařízení, jak je uvedeno níže.
# sfdisk -l /dev/sdf
Místo -l můžete také použít –list, jak je uvedeno níže.
sfdisk --list sfdisk --list /dev/sdf
Pokud jste ve správě pevného disku nováčkem, možná budete chtít také porozumět tomu, jak používat běžný důvěryhodný příkaz fdisk:7 Linux fdisk Příklady příkazů pro správu oddílu pevného disku
2. Změnit jednotky zobrazení (velikost zobrazení v MB)
Ve výchozím nastavení bude sfdisk zobrazovat velikost v blocích. Ve výše uvedeném výstupu sfdisk -l se podívejte na sloupec nazvaný „#blocks“.
Pokud však chcete zobrazit velikost v MB, použijte volbu -u, jak je uvedeno níže. -u znamená Jednotka. Musíte určit typ jednotky. V tomto příkladu je typ jednotky, který určujeme, M (což je MB)
Volba -uM nahradí sloupec „#cyls“ z výše uvedeného výstupu hodnotou „MiB“ (velikost v MB), jak je uvedeno níže.
# sfdisk -l -uM Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: 1MiB = 1024*1024 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End MiB #blocks Id System /dev/sdf1 0+ 8032- 8033- 8225279+ 83 Linux /dev/sdf2 8032+ 8189- 157- 160650 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
Níže jsou uvedeny různé typy jednotek, které můžete zadat:
- M pro MB
- C pro počet válců (toto je výchozí nastavení)
- S pro počet sektorů
- B pro počet bloků (toto se také zobrazuje ve výchozím výstupu spolu s #cylindry)
# sfdisk -l -uM # sfdisk -l -uC # sfdisk -l -uS # sfdisk -l -uB
3. Vytvořte nové diskové oddíly (interaktivní metoda)
V následujícím příkladu vezmeme prázdný pevný disk (sdf) a vytvoříme na něm oddíly pomocí sfdisk.
# sfdisk /dev/sdf
Následuje výstup výše uvedeného příkazu rozdělený do několika sekcí, aby bylo možné jej snadno pochopit.
Nejprve zkontroluje sdf, aby se ujistil, že není aktuálně připojen nebo není používán někým jiným.
Checking that no-one is using this disk right now ... OK
Dále zobrazí informace o aktuálním oddílu na tomto zařízení. Jak je vidět odtud, v současné době na zařízení sdf nejsou žádné oddíly.
Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track sfdisk: /dev/sdf: unrecognized partition table type Old situation: sfdisk: No partitions found
Dále vás požádá o zadání velikosti oddílu pro všechny 4 primární oddíly. I když chcete vytvořit pouze jeden oddíl, zobrazí se výzva ke 4 různým časům pro všechny primární oddíly.
V následujícím:
- V tomto příkladu bych rád vytvořil dva oddíly.
- Když se tedy zobrazí výzva k zadání „/dev/sdf1 :“, vytvářím první oddíl. Zde jsem zadal „0 1024“. 0 je začátek válce a 1024 je konec válce pro 1. oddíl.
- Dále, když se zobrazí výzva k zadání „/dev/sdf2:“, vytvářím 2. oddíl. Zde jsem jen stiskl enter, čímž zabere veškerý zbývající prostor a vytvořím 2. oddíl.
- Dále jsem právě stiskl enter pro sdf3 a sdf4. Protože na sdf nezbývá žádné místo, bude pouze prázdný, jak je znázorněno níže.
- Upozorňujeme také, že ve výchozím nastavení vytvoří oddíl typu „Linux“. Pokud jej chcete změnit na jiný typ, měli byste typ zadat.
Input in the following format; absent fields get a default value. <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s> Usually you only need to specify <start> and <size> (and perhaps <type>). /dev/sdf1 :0 1024 /dev/sdf1 0+ 1023 1024- 8225279+ 83 Linux /dev/sdf2 : /dev/sdf2 1024 1043 20 160650 83 Linux /dev/sdf3 : /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 : /dev/sdf4 0 - 0 0 0 Empty
Nyní sfdisk zobrazí oddíly, které vytvoří. Jak je znázorněno níže, vytvoří se dva oddíly (sdf1 a sdf2).
New situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 1023 1024- 8225279+ 83 Linux /dev/sdf2 1024 1043 20 160650 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty Warning: no primary partition is marked bootable (active) This does not matter for LILO, but the DOS MBR will not boot this disk.
Nakonec požádá o potvrzení. Pokud jste udělali chybu a nechcete vytvářet výše uvedené oddíly, zadejte „q“ pro ukončení. Zde jsem zadal y, abych vytvořil tyto dva nové oddíly.
Do you want to write this to disk? [ynq] y Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
Nakonec jsem ověřil, že oddíly byly úspěšně vytvořeny pomocí sfdisk -l, jak je uvedeno níže.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 1023 1024- 8225279+ 83 Linux /dev/sdf2 1024 1043 20 160650 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
Související informace o vytváření velkých oddílů naleznete v tomto:Jak vytvořit oddíl v Linuxu pro velikost>2 TB pomocí Parted GPT
4. Ověřte konzistenci tabulky oddílů
Použijte volbu -V (velká písmena V) k provedení kontroly konzistence tabulek oddílů. V znamená ověřit.
Jak je znázorněno na následujícím výstupu, řekne „OK“, když je vše v pořádku. Tím se také zobrazí varovná hlášení.
# sfdisk -V Warning: partition 1 does not end at a cylinder boundary /dev/sda: OK Warning: no primary partition is marked bootable (active) This does not matter for LILO, but the DOS MBR will not boot this disk. /dev/sdf: OK
Můžete také ověřit pouze konkrétní zařízení, jak je uvedeno níže.
# sfdisk -V /dev/sdf
Můžete také kombinovat možnosti V a l, jak je znázorněno níže.
sfdisk -lV
Pokud provádíte ověření zevnitř skriptu shellu, můžete použít volbu -q spolu s V. q znamená tichý. V tomto případě nezobrazí žádný výstup. Můžete však zkontrolovat stav příkazu a zkontrolovat, zda kontrola konzistence prošla nebo selhala, jak je uvedeno níže.
# sfdisk -Vq # echo $? 0
Pokud chcete zkontrolovat konzistenci samotného obsahu disku, použijte tuto metodu:10 příkladů příkazů Linux Fsck ke kontrole a opravě souborového systému
5. Zobrazit celkovou velikost oddílu
Chcete-li zobrazit celkovou velikost disku včetně všech oddílů, použijte volbu -s. -s znamená velikost.
Zobrazí se celková velikost oddílu v počtu bloků.
Ve výchozím nastavení se zobrazí celková velikost oddílu pro každý pevný disk ve vašem systému. Také zobrazí celkovou velikost všech disků ve vašem systému, jak je uvedeno níže.
# sfdisk -s /dev/sda: 8388608 /dev/sdf: 8388608 total: 16777216 blocks
Můžete také určit jednotlivý oddíl pevného disku (nebo) podle níže uvedeného obrázku.
# sfdisk -s /dev/sdf 8388608 # sfdisk -s /dev/sdf1 1654694
6. Vypsat podrobnosti o oddílu disku do textového souboru
sfdisk také poskytuje možnost vypsat všechny informace o diskových oddílech do textového souboru.
K tomu použijte volbu -d. -d znamená výpis.
Ve výchozím nastavení -d vypíše výstup na obrazovku. To bude zahrnovat informace o oddílech pro všechna zařízení ve vašem systému.
# sfdisk -d
Můžete také vypsat informace o oddílech konkrétního zařízení, jak je znázorněno níže.
# sfdisk -d /dev/sda
Chcete-li jej vypsat do textového souboru, proveďte následující. Toto vypíše informace o oddílu sda do textového souboru sda.out.
# sfdisk -d /dev/sda > sda.out # cat sda.out # partition table of /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 16775168, Id=83, bootable /dev/sda2 : start= 0, size= 0, Id= 0 /dev/sda3 : start= 0, size= 0, Id= 0 /dev/sda4 : start= 0, size= 0, Id= 0
7. Vytvořit nové oddíly z textového souboru (neinteraktivní metoda)
Krása volby -d spočívá v tom, že můžete vytvořit výpis diskových oddílů konkrétního zařízení a použít jej k vytvoření podobného výpisu diskových oddílů na jiném zařízení.
Pokud například chcete replikovat aktuální oddíl na zařízení sda na zařízení sdf, můžete použít volbu -d, jak je uvedeno níže.
Nejprve přeneste výpis zařízení sda, jak je ukázáno v předchozím příkladu, do souboru sda.out.
Ve výše uvedeném příkladu, jak vidíme, máme jeden oddíl na zařízení sda.
Nyní máme na zařízení sdf dva oddíly.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 499 500- 4016249+ 83 Linux /dev/sdf2 500 1043 544 4369680 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
Nyní použijte soubor sda.out z předchozího příkladu a použijte jej k vytvoření podobných oddílů na zařízení sdf, jak je uvedeno níže.
# sfdisk /dev/sdf < sda.out
Výše uvedený příkaz použije informace o oddílu ze souboru sda.out a použije je k automatickému vytvoření nového oddílu na sdf, aniž by uživatel požadoval jakýkoli vstup, jak je uvedeno níže.
Checking that no-one is using this disk right now ... OK Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Old situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 499 500- 4016249+ 83 Linux /dev/sdf2 500 1043 544 4369680 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty New situation: Units: sectors of 512 bytes, counting from 0 Device Boot Start End #sectors Id System /dev/sdf1 * 2048 16777215 16775168 83 Linux /dev/sdf2 0 - 0 0 Empty /dev/sdf3 0 - 0 0 Empty /dev/sdf4 0 - 0 0 Empty Warning: partition 1 does not end at a cylinder boundary Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
Nyní, jak vidíte z následujícího výstupu, sdf má jeden nový oddíl, který je podobný sda.
# sfdisk -l Disk /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 * 0+ 1044- 1045- 8387584 83 Linux /dev/sda2 0 - 0 0 0 Empty /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 * 0+ 1044- 1045- 8387584 83 Linux /dev/sdf2 0 - 0 0 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
8. Zobrazit podrobnosti o rozšířeném oddílu
x znamená eXtended partition. Když zkombinujete x spolu s l, zobrazí se také neprimární rozšířené oddíly, jak je uvedeno níže.
# sfdisk -lx /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 205 206- 1654694+ 83 Linux /dev/sdf2 206 411 206 1654695 83 Linux /dev/sdf3 412 514 103 827347+ 82 Linux swap / Solaris /dev/sdf4 515 1043 529 4249192+ 5 Extended /dev/sdf5 515+ 617 103- 827347 83 Linux - 618 1043 426 3421845 5 Extended - 515 514 0 0 0 Empty - 515 514 0 0 0 Empty /dev/sdf6 618+ 1043 426- 3421844+ 83 Linux - 618 617 0 0 0 Empty - 618 617 0 0 0 Empty - 618 617 0 0 0 Empty
Můžete také použít volbu -x, když vytváříte nové oddíly, v takovém případě se sfdisk zeptá na (nebo očekává) vstupní deskriptory pro ně.
9. Zobrazit geometrii disku pro ladění
Když ladíte jakékoli problémy související s tabulkami oblastí, jednou z věcí, kterou byste měli ověřit, je, zda jsou informace tabulky oblastí na zařízení stejné, jak je chápe jádro.
Je dobré ověřit, že představa jádra o geometrii zařízení je stejná jako skutečná geometrie zařízení přímým čtením tabulky oddílů.
Možnost -G (velká písmena G) zobrazí skutečnou geometrii zařízení přímým čtením tabulky oddílů, jak je uvedeno níže.
# sfdisk -G /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
Volba -g (malé g) zobrazí představu jádra o geometrii zařízení.
# sfdisk -g /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
V tomto příkladu se oba výstupy shodují, jak by měly. Pokud se toto neshoduje, pak je tu nějaký problém.
10. Zobrazit všechny typy diskových oddílů
Chcete-li zobrazit všechny podporované typy oddílů, které lze použít při vytváření nových oddílů pomocí sfdisk, použijte volbu -T. T znamená typ (tj. typ oddílu).
Zobrazí se ID typu oddílu a popisný název. Při vytváření oddílu určíte ID typu oddílu. Například použijte 82 jako typ pro odkládací oddíl.
# sfdisk -T Id Name 0 Empty 1 FAT12 2 XENIX root 3 XENIX usr 4 FAT16 <32M 5 Extended 6 FAT16 .. .. 82 Linux swap / Solaris 83 Linux 84 OS/2 hidden C: drive 85 Linux extended 86 NTFS volume set 87 NTFS volume set 88 Linux plaintext 8e Linux LVM .. ..
Ohledně swapovacího prostoru:2 způsoby, jak přidat swapovací prostor pomocí dd, mkswap a swapon
11. Manipulovat pouze s jedním diskovým oddílem
Pro manipulaci s konkrétním diskovým oddílem můžete použít volbu -N. -N znamená číslo (tj. číslo oddílu).
Toto můžete použít k vytvoření nového oddílu na existujícím disku, který již má jiné oddíly.
V následujícím příkladu v zařízení sdf již máme jeden oddíl. Chceme však vytvořit 2. oddíl.
# sfdisk /dev/sdf -N2 Checking that no-one is using this disk right now ... OK Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Old situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 0 - 0 0 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty Input in the following format; absent fields get a default value. <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s> Usually you only need to specify <start> and <size> (and perhaps <type>). /dev/sdf2 :512 1024 Warning: given size (1024) exceeds max allowable size (532) /dev/sdf2 :512 532 /dev/sdf2 512 1043 532 4273290 0 Empty New situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 512 1043 532 4273290 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty Warning: no primary partition is marked bootable (active) This does not matter for LILO, but the DOS MBR will not boot this disk. Do you want to write this to disk? [ynq] y Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
Ve výše uvedeném:
- Použili jsme volbu -N2 k manipulaci pouze s 2. oddílem.
- To znamená, že sfdisk se vás zeptá na informace o oddílu pouze pro sdf2, jak je uvedeno výše.
- To nezmění stávající oddíl sdf1.
- Také nebudete vyzváni k zadání informací o sdf3 a sdf4
12. Režim suchého chodu pro ověření
Než skutečně vytvoříte nový oddíl nebo změníte jakékoli informace v tabulkách oddílů, chcete se ujistit, zda je syntaxe příkazu, který máte, v pořádku.
V takovém případě je nejlepší použít volbu -n, která skutečně projde všemi pohyby, aniž by skutečně něco udělala.
Volba -n je volba suchého běhu, která projde tím, co má příkaz udělat, ale nic neuloží ani nezmění.
Například, když měníte typ oddílu, můžete použít volbu -n, která projde příkazem, ale ve skutečnosti nic nezmění, jak je uvedeno níže.
# sfdisk -n --change-id /dev/sdf 1 82 sfdisk: -n flag was given: Nothing changed
Můžete to také použít při vytváření nových oddílů, jak je znázorněno níže. To projde příkazem a zobrazí vše ve výstupu, ale bez vytvoření nových oddílů.
sfdisk -n /dev/sdf < sda.out
13. Označte konkrétní oddíl jako spouštěcí
Použijte volbu -A k označení konkrétního oddílu jako spouštěcího oddílu. -A znamená aktivovat.
Následující příklad je aktivace 2. oddílu (sdf2) jako aktivního oddílu (tj. označení jako bootovací). Vezměte prosím na vědomí, že pokud je již jakýkoli jiný oddíl na tomto zařízení (sdf) označen pro spuštění, jeho označení nyní bude zrušeno.
# sfdisk -A2 /dev/sdf Done
Jak vidíte z následujícího výstupu, aktivní je pouze sdf2. „*“ ve 2. sloupci (tj. Boot) označuje, že je označen jako spouštěcí oddíl.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 * 512 1043 532 4273290 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
14. Změňte typ oddílu
Můžete změnit typ oddílu existujícího oddílu.
Nejprve použijte volbu –print-id k zobrazení typu oddílu konkrétního oddílu. Následující příkaz zobrazí typ oddílu sdf1. Zde 83 ve výstupu označuje, že sdf1 je typ oddílu Linux.
# sfdisk --print-id /dev/sdf 1 83
Následující výstup 0 znamená, že oddíl sdf2 je aktuálně prázdný.
# sfdisk --print-id /dev/sdf 2 0
Nyní použijte volbu –change-id, jak je uvedeno níže, ke změně typu oddílu zařízení s oddílem.
V tomto příkladu měníme typ oddílu oddílu sdf2 na 83 (což je oddíl Linux)
# sfdisk --change-id /dev/sdf 2 83 Done
Jak vidíte z následujícího výstupu, sdf2 je nyní nastaven na typ oddílu Linux (tj. Podívejte se na poslední sloupec „Systém“)
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 * 512 1043 532 4273290 83 Linux /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
15. Vytvořte nové oddíly ze skriptu Shell (neinteraktivní metoda)
Jednou z velkých výhod sfdisk je, že můžete vytvořit oddíl za běhu z příkazového řádku bez jakékoli interakce ze strany sfdisk.
To je velmi užitečné, když chcete zautomatizovat vytváření oddílu ze skriptu shellu.
V současné době, jak vidíte z následujícího výstupu, je zařízení sdf aktuálně prázdné. Toto nemá žádné oddíly.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0 - 0 0 0 Empty /dev/sdf2 0 - 0 0 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty
Nyní spusťte následující příkaz, který automaticky vytvoří tři oddíly (sdf1, sdf2, sdf3) pomocí hodnot uvedených níže.
# sfdisk /dev/sdf <<EOF 0,512 ,512 ; ; EOF
Ve výše uvedeném:
- Ve výše uvedeném vstupu by měly být 4 řádky pro všechny 4 primární oddíly.
- První řádek označuje, že by se mělo začít od 1. válce do 512, aby se vytvořil 1. oddíl (tj. sdf1)
- Druhý řádek označuje, že by měl začít od posledního dostupného válce jako první válec a odtud použít +512 cylindrů k vytvoření 2. oddílu (tj. sdf2)
- Třetí řádek má středník, což znamená, že se používají výchozí hodnoty a uživatel nic nevyzve k zadání třetího oddílu. V tomto případě použije všechny zbývající válce na disku a vytvoří 3. oddíl (tj. sdf3)
- Čtvrtý řádek má středník, což znamená, že se používají výchozí hodnoty a uživatel nevyzve k zadání čtvrtého oddílu. V tomto případě, protože nezbývá místo, nevytvoří nic pro 4. oddíl (tj. sdf4)
Následuje výstup výše uvedeného příkazu sfdisk. Upozorňujeme, že toto nevyžaduje žádný vstup od uživatele.
Checking that no-one is using this disk right now ... OK Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Old situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0 - 0 0 0 Empty /dev/sdf2 0 - 0 0 0 Empty /dev/sdf3 0 - 0 0 0 Empty /dev/sdf4 0 - 0 0 0 Empty New situation: Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 512 1023 512 4112640 83 Linux /dev/sdf3 1024 1043 20 160650 83 Linux /dev/sdf4 0 - 0 0 0 Empty Warning: no primary partition is marked bootable (active) This does not matter for LILO, but the DOS MBR will not boot this disk. Successfully wrote the new partition table Re-reading the partition table ... If you created or changed a DOS partition, /dev/foo7, say, then use dd(1) to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1 (See fdisk(8).)
Ověřte, že byly tři oddíly vytvořeny automaticky pomocí poskytnutých hodnot.
# sfdisk -l /dev/sdf Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sdf1 0+ 511 512- 4112639+ 83 Linux /dev/sdf2 512 1023 512 4112640 83 Linux /dev/sdf3 1024 1043 20 160650 83 Linux /dev/sdf4 0 - 0 0 0 Empty