Ana içeriğe geç

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:

linux'ta disk listeleme
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:

fdisk opsiyonları
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:

fdisk ile FAT32 partition
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.

fdisk ile partition tipini değiştirme
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):

fdisk ile NTFS partition
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:

fdisk ile ext4 partition
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:

fdisk değişikliklerin diske yazılması
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ı

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