Wyszukiwanie w witrynie

10 poleceń fdisk do zarządzania partycjami dysku Linux


Skrót fdisk (od „dysk stały lub sformatuj dysk”) to najczęściej używane narzędzie do manipulacji dyskami oparte na wierszu poleceń dla Systemy Linux/Unix. Za pomocą polecenia fdisk możesz przeglądać, tworzyć, zmieniać rozmiar, usuwać, zmieniać, kopiować i przenosić partycje na dysku twardym, korzystając z własnego, przyjaznego dla użytkownika interfejsu opartego na menu tekstowym.

Narzędzie to jest bardzo przydatne przy tworzeniu miejsca na nowe partycje, organizowaniu miejsca na nowe dyski, reorganizowaniu starych dysków oraz kopiowaniu lub przenoszeniu danych na nowe dyski. Umożliwia utworzenie maksymalnie czterech nowych podstawowych partycji i liczby logicznych (rozszerzonych) partycji, w zależności od rozmiaru dysku twardego w systemie.

W tym artykule opisano 10 podstawowych poleceń fdisk służących do zarządzania tablicą partycji w systemach opartych na systemie Linux. Aby uruchomić polecenie fdisk, musisz być użytkownikiem root, w przeciwnym razie pojawi się błąd „nie znaleziono polecenia”.

1. Wyświetl wszystkie partycje dysku w systemie Linux

Poniższe podstawowe polecenie wyświetla listę wszystkich istniejących partycji dysku w systemie. Argument „-l” oznaczający (wyświetlający listę wszystkich partycji) jest używany z poleceniem fdisk w celu wyświetlenia wszystkich dostępnych partycji w systemie Linux. Partycje są wyświetlane według nazw ich urządzeń. Na przykład: /dev/sda, /dev/sdb lub /dev/sdc.

[[email  ~]# fdisk -l

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

2. Wyświetl określoną partycję dysku w systemie Linux

Aby wyświetlić wszystkie partycje określonego dysku twardego, użyj opcji „-l” z nazwą urządzenia. Na przykład poniższe polecenie wyświetli wszystkie partycje dysku urządzenia /dev/sda. Jeśli masz różne nazwy urządzeń, po prostu wpisz nazwę urządzenia jako /dev/sdb lub /dev/sdc.

[[email  ~]# fdisk -l /dev/sda

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

3. Sprawdź wszystkie dostępne polecenia fdisk

Jeśli chcesz zobaczyć wszystkie polecenia dostępne dla fdisk. Po prostu użyj następującego polecenia, podając nazwę dysku twardego, np. /dev/sda , jak pokazano poniżej. Poniższe polecenie wyświetli dane wyjściowe podobne do poniższych.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help):

Wpisz „m”, aby wyświetlić listę wszystkich dostępnych poleceń fdisk, którymi można operować na dysku twardym /dev/sda. Po wpisaniu „m” na ekranie zobaczysz wszystkie dostępne opcje fdisk, z których możesz korzystać na urządzeniu /dev/sda.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help):

4. Wydrukuj całą tabelę partycji w systemie Linux

Aby wydrukować całą tablicę partycji dysku twardego, musisz być w trybie poleceń określonego dysku twardego, powiedz /dev/sda.

[root@tecmint ~]# fdisk /dev/sda

W trybie poleceń wpisz „p” zamiast „m”, jak to zrobiliśmy wcześniej. Gdy wpiszę „p”, wydrukuje konkretną tablicę partycji /dev/sda.

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Command (m for help):

5. Jak usunąć partycję w systemie Linux

Jeśli chcesz usunąć określoną partycję (tj. /dev/sda9) z określonego dysku twardego, np. /dev/sda. Aby to zrobić, musisz być w trybie poleceń fdisk.

[root@tecmint ~]# fdisk /dev/sda

Następnie wpisz „d”, aby usunąć dowolną nazwę partycji z systemu. Gdy wpiszę „d”, pojawi się monit o podanie numeru partycji, którą chcę usunąć z dysku twardego /dev/sda. Załóżmy, że wprowadzę tutaj liczbę „4”, następnie usunie ona partycję o numerze „4” (tj. /dev/sda4) i wyświetli wolną spacja w tablicy partycji. Wpisz „w”, aby zapisać tabelę na dysk i wyjść po wprowadzeniu nowych zmian w tabeli partycji. Nowe zmiany będą miały miejsce dopiero po kolejnym ponownym uruchomieniu systemu. Można to łatwo zrozumieć na podstawie poniższego wyniku.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

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

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
You have new mail in /var/spool/mail/root

Ostrzeżenie: zachowaj ostrożność podczas wykonywania tego kroku, ponieważ użycie opcji „d” spowoduje całkowite usunięcie partycji z systemu i może spowodować utratę wszystkich danych na partycji.

6. Jak utworzyć nową partycję w systemie Linux

Jeśli na jednym z urządzeń pozostało wolne miejsce, powiedz /dev/sda i chcesz utworzyć pod nim nową partycję. Następnie musisz być w trybie poleceń fdisk /dev/sda. Wpisz następujące polecenie, aby przejść do trybu poleceń określonego dysku twardego.

[root@tecmint ~]# fdisk /dev/sda

Po wejściu do trybu poleceń naciśnij teraz polecenie „n”, aby utworzyć nową partycję w /dev/sda o określonym rozmiarze. Można to wykazać za pomocą następujących danych wyjściowych.

[root@tecmint ~]# fdisk  /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e

Podczas tworzenia nowej partycji zostaną wyświetlone dwie opcje: „rozszerzona” lub „podstawowa”. Naciśnij „e”, aby uzyskać partycję rozszerzoną i „p”, aby uzyskać partycję podstawową. Następnie poprosi Cię o wprowadzenie następujących dwóch danych wejściowych.

  1. Numer pierwszego cylindra tworzonej partycji.
  2. Numer ostatniego cylindra tworzonej partycji (Ostatni cylinder, +cylindry lub +rozmiar).

Możesz wprowadzić rozmiar cylindra, dodając „+5000M” w ostatnim cylindrze. Tutaj „+” oznacza dodanie, a 5000M oznacza rozmiar nowej partycji (tj. 5000MB). Należy pamiętać, że po utworzeniu nowej partycji należy uruchomić polecenie „w”, aby zmienić i zapisać nowe zmiany w tabeli partycji, a na koniec ponownie uruchomić system w celu sprawdzenia nowo utworzonej partycji.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

7. Jak sformatować partycję w systemie Linux

Po utworzeniu nowej partycji nie pomijaj formatowania nowo utworzonej partycji za pomocą polecenia „mkfs”. Wpisz następujące polecenie w terminalu, aby sformatować partycję. Tutaj /dev/sda4 to moja nowo utworzona partycja.

[root@tecmint ~]# mkfs.ext4 /dev/sda4

8. Jak sprawdzić rozmiar partycji w systemie Linux

Po sformatowaniu nowej partycji sprawdź rozmiar tej partycji za pomocą flagi „s” (wyświetla rozmiar w blokach) za pomocą polecenia fdisk. W ten sposób możesz sprawdzić rozmiar dowolnego konkretnego urządzenia.

[root@tecmint ~]# fdisk -s /dev/sda2
5194304

9. Jak naprawić kolejność tabeli partycji

Jeśli usunąłeś partycję logiczną i ponownie ją utworzyłeś, możesz zauważyć problem „partycja niewłaściwa” lub komunikat o błędzie, taki jak „Wpisy w tabeli partycji nie są uporządkowane na dysku '.

Na przykład po usunięciu trzech partycji logicznych, takich jak (sda4, sda5 i sda6) i utworzeniu nowej partycji, można się spodziewać, że nowa nazwa partycji to sda4. Jednak system utworzy go jako sda5. Dzieje się tak, ponieważ po usunięciu partycji partycja sda7 została przeniesiona jako sda4, a wolne miejsce przesunęło się na koniec.

Aby rozwiązać takie problemy z kolejnością partycji i przypisać sda4 do nowo utworzonej partycji, wpisz „x”, aby wejść do sekcji dodatkowej funkcjonalności, a następnie wpisz „f<' polecenie eksperckie, aby naprawić kolejność tablicy partycji, jak pokazano poniżej.

[root@tecmint ~]# fdisk  /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): x

Expert command (m for help): f
Done.

Expert command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

Po uruchomieniu polecenia „f” nie zapomnij uruchomić polecenia „w”, aby zapisać i wyjść z trybu poleceń fdisk. Po naprawieniu kolejności tablicy partycji nie będziesz już otrzymywać komunikatów o błędach.

10. Jak wyłączyć flagę startową (*) partycji

Domyślnie polecenie fdisk wyświetla symbol flagi rozruchowej (tj. „*”) na każdej partycji. Jeśli chcesz włączyć lub wyłączyć flagę rozruchu na określonej partycji, wykonaj następujące kroki.

[root@tecmint ~]# fdisk  /dev/sda

Naciśnij polecenie „p”, aby wyświetlić bieżącą tablicę partycji. Zobaczysz flagę rozruchu (symbol gwiazdki (*) w kolorze pomarańczowym) na /dev/ sda1, jak pokazano poniżej.

[root@tecmint ~]# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Następnie wprowadź polecenie „a”, aby wyłączyć flagę rozruchu, a następnie wprowadź numer partycji „1” jako (tj. /dev/sda1) w moim przypadku . Spowoduje to wyłączenie flagi rozruchowej na partycji /dev/sda1. Spowoduje to usunięcie flagi gwiazdki (*).

Command (m for help): a
Partition number (1-9): 1

Command (m for help): p

Disk /dev/sda: 637.8 GB, 637802643456 bytes
255 heads, 63 sectors/track, 77541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          13      104391   83  Linux
/dev/sda2              14        2624    20972857+  83  Linux
/dev/sda3            2625        4582    15727635   83  Linux
/dev/sda4            4583       77541   586043167+   5  Extended
/dev/sda5            4583        5887    10482381   83  Linux
/dev/sda6            5888        7192    10482381   83  Linux
/dev/sda7            7193        7845     5245191   83  Linux
/dev/sda8            7846        8367     4192933+  82  Linux swap / Solaris
/dev/sda9            8368       77541   555640123+  8e  Linux LVM

Command (m for help):

Dołożyłem wszelkich starań, aby uwzględnić prawie wszystkie podstawowe polecenia fdisk, ale nadal fdisk zawiera wiele innych specjalistycznych poleceń, których można użyć, wpisując „x”. Aby uzyskać bardziej szczegółowe informacje, sprawdź polecenie „man fdisk” z terminala. Jeśli pominąłem jakieś ważne polecenie, podziel się ze mną w sekcji komentarzy.

Przeczytaj także:

  1. 12 poleceń „df” do sprawdzania miejsca na dysku w systemie Linux
  2. 10 przydatnych poleceń „du” do sprawdzania wykorzystania dysku przez pliki i katalogi