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.
- Numer pierwszego cylindra tworzonej partycji.
- 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:
- 12 poleceń „df” do sprawdzania miejsca na dysku w systemie Linux
- 10 przydatnych poleceń „du” do sprawdzania wykorzystania dysku przez pliki i katalogi