fdisk Komutu
fdisk
komutu, diskinizin partition table'ı üzerinde değişiklikler yapmanıza olanak sağlayan bir komuttur. Blok aygıtları, "partition" adı verilen mantıksal birimlere bölünebilir. Partition'ların hangi sektörde başladığı, hangi sektörde bittiği gibi bilgiler ise "partition table" üzerinde tutulur. fdisk
tam olarak burada devreye giriyor.
"Linux'ta disk partitioning" işlemleri "root" yetkisi gerektirir.
Linux'ta Diskleri Listeleme
Diskleri ve disklerin partition'larını listelemek için fdisk -l
kullanabilirsiniz:
root@gnuadmin:~# fdisk -l
Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Disk model: VBOX HARDDISK
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: 0xa422b442
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2 1001470 62912511 61911042 29.5G 5 Extended
/dev/sda5 1001472 62912511 61911040 29.5G 8e Linux LVM
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/debian--vg-root: 28.56 GiB, 30668750848 bytes, 59899904 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/debian--vg-swap_1: 980 MiB, 1027604480 bytes, 2007040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Çıktıya göre; sistemde iki adet disk mevcut: /dev/sda
ve /dev/sdb
. Bu disklerden "sda'nın" bir kısmı, "LVM" için kullanılıyor. En altta görülen /dev/mapper
şeklindeki diskler, bu "LVM partition'larını" belirtiyor.
Linux'ta Disk Bölümleme (Partitioning)
fdisk
ile yapacağınız tüm işlemler, siz diske yazana kadar sadece bellekte tutulur. Yanlış bir şey yaptığınızı düşünüyorsanız, diske yazmadan programdan çıkabilirsiniz. Diskiniz bu durumdan etkilenmeyecektir.
Partitioning işlemini doğru diskte yaptığınızdan emin olun. Aksi durumda data kaybı yaşayabilirsiniz! Bu örnekte, /dev/sdb
diskini kullanacağız.
fdisk ile İnteraktif Partitioning
fdisk diskadi
(örneğimiz için konuşursak, fdisk /dev/sdb) komutunu kullanarak interaktif süreci başlatabilirsiniz:
"m" ile yardım alabilir ve kullanabileceğiniz komutların listesini görebilirsiniz:
Command (m for help): m
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Bu kısmı iyi öğrenmeliyiz. Şimdi 10 GiB boyutundaki diskimizde 2 GiB boyutunda FAT32, 2 GiB boyutunda NTFS ve 6 GiB boyutunda ext4 partition oluşturalım:
fdisk ile FAT32 partition
fdisk /dev/sdb
komutunu çalıştırıp adımları takip edelim:
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-20971519, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-20971519, default 20971519): +2G
Created a new partition 1 of type 'Linux' and of size 2 GiB.
Command (m for help): p
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK
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: 0x830a162b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G 83 Linux
Partition'ı oluşturmadan önce ve oluşturduktan sonra üretilen "p" çıktılarına dikkat edin. İkinci çıktıda, "Linux" tipinde bir partition (/dev/sdb1) oluşturulduğunu göreceksiniz. Şimdi bu partition'ı "FAT32 (LBA)" tipine çevirelim. Bunun için "0c" kodunu kullanacağız. fdisk
partition kodlarının tamamını, sayfanın sonunda bulabilirsiniz.
Command (m for help): t
Selected partition 1
Hex code or alias (type L to list all): 0c
Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'.
Command (m for help): p
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK
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: 0x830a162b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G c W95 FAT32 (LBA)
Görüldüğü üzere, "t" ile partition tipini değiştirmek istediğimizi belirttik ve "0c" ile "W95 FAT32 (LBA)" tipine çevirdik.
fdisk ile NTFS partition
Partition oluşturma sürecinde hiçbir fark yok. Tip için ise "07" seçeceğiz (HPFS/NTFS/exFAT):
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 (4196352-20971519, default 4196352):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (4196352-20971519, default 20971519): +2G
Created a new partition 2 of type 'Linux' and of size 2 GiB.
Command (m for help): t
Partition number (1,2, default 2): 2
Hex code or alias (type L to list all): 07
Changed type of partition 'Linux' to 'HPFS/NTFS/exFAT'.
Command (m for help): p
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK
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: 0x830a162b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G c W95 FAT32 (LBA)
/dev/sdb2 4196352 8390655 4194304 2G 7 HPFS/NTFS/exFAT
fdisk ile ext4 partition
fdisk
, varsayılan olarak "Linux" tipinde partition oluşturur. Bu, "ext4" için yeterli olacaktır:
Command (m for help): n
Partition type
p primary (2 primary, 0 extended, 2 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3):
First sector (8390656-20971519, default 8390656):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (8390656-20971519, default 20971519):
Created a new partition 3 of type 'Linux' and of size 6 GiB.
Command (m for help): p
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK
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: 0x830a162b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G c W95 FAT32 (LBA)
/dev/sdb2 4196352 8390655 4194304 2G 7 HPFS/NTFS/exFAT
/dev/sdb3 8390656 20971519 12580864 6G 83 Linux
Partitioning Sonrası Yapılacaklar
"p" ile partition'ları listeleyin. Her şey doğru görünüyorsa, "w" ile değişiklikleri diske yazın ve çıkın:
Command (m for help): p
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VBOX HARDDISK
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: 0x830a162b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 4196351 4194304 2G c W95 FAT32 (LBA)
/dev/sdb2 4196352 8390655 4194304 2G 7 HPFS/NTFS/exFAT
/dev/sdb3 8390656 20971519 12580864 6G 83 Linux
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
Disklerinizi tekrar listelediğinizde, partition'larınızı görmeniz beklenmektedir. Unutmayın ki; diskleri bölümlemiş olmanız, bu alanları kullanabileceğiniz anlamına gelmez. Farklı araçlar kullanarak, bu partition'ları formatlamanız (biçimlendirmeniz) gerekmektedir.
fdisk Partition Kodları
00 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
01 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
02 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
03 XENIX usr 3c PartitionMagic 84 OS/2 hidden or c6 DRDOS/sec (FAT-
04 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
05 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
06 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
07 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
08 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
09 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
0a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
0b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
0c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi ea Linux extended
0e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs
0f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ee GPT
10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f1 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f4 SpeedStor
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fb VMware VMFS
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fc VMware VMKCORE
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fd Linux raid auto
1c Hidden W95 FAT3 75 PC/IX bc Acronis FAT32 L fe LANstep
1e Hidden W95 FAT1 80 Old Minix be Solaris boot ff BBT