ディスクパーティション

May 21, 2018

パーティションの種類

1 台のディスクドライブを複数の論理的な区画 (=パーティション) に分割して利用することができる。それぞれのパーティションには異なるファイルシステムを作成することが可能であり、BIOS ベースなシステムではパーティションの種類は 3 つ存在する。

  • 基本パーティション: 最大 4 個の基本パーティションを作成することが可能。基本パーティションのデバイスファイル名は、ディスクが /dev/sda の場合、/dev/sda1 ~ /dev/sda4 となる。
  • 拡張パーティション: 基本パーティションの 1 つを拡張パーティションとすることが可能。拡張パーティションの中にはファイルシステムではなく、論理パーティションが格納される。
  • 論理パーティション: 拡張パーティションの中に作成されたパーティションのこと。論理パーティションのデバイスファイル名は /dev/sda5 以降となる。

UEFI ベースのシステムでは、他のパーティションの管理等に用いられる EFI システムパーティションと 1 つ以上の基本パーティションが利用可能。拡張/論理パーティションは使用しない。

パーティション関連コマンド

fdisk

サブコマンド 機能
l パーティションタイプを一覧表示する
n パーティションを作成する
d パーティションを削除する
p パーティションテーブルを表示する
t パーティションタイプを変更する
a ブートフラグのオン/オフを切り替える
w パーティションテーブルの変更を保存して終了する
q パーティションテーブルの変更を保存しないで終了する
m ヘルプメニューを表示する
$ sudo fdisk /dev/xvdc  
Welcome to fdisk (util-linux 2.23.2).  
  
Changes will remain in memory only, until you decide to write them.  
Be careful before using the write command.  
  
Device does not contain a recognized partition table  
Building a new DOS disklabel with disk identifier 0x56207a3e.  
  
Command (m for help): p  
  
Disk /dev/xvdc: 322.1 GB, 322122547200 bytes, 629145600 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 label type: dos  
Disk identifier: 0x56207a3e  
  
    Device Boot      Start         End      Blocks   Id  System  
  
Command (m for help): n  
Partition type:  
   p   primary (0 primary, 0 extended, 4 free)  
   e   extended  
Select (default p): p  
Partition number (1-4, default 1): 1  
First sector (2048-629145599, default 2048):   
Using default value 2048  
Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599): +500M  
Partition 1 of type Linux and of size 500 MiB is set  
  
Command (m for help): p  
  
Disk /dev/xvdc: 322.1 GB, 322122547200 bytes, 629145600 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 label type: dos  
Disk identifier: 0x56207a3e  
  
    Device Boot      Start         End      Blocks   Id  System  
/dev/xvdc1            2048     1026047      512000   83  Linux  
  
Command (m for help): w  
The partition table has been altered!  
  
Calling ioctl() to re-read partition table.  
Syncing disks.  

gdisk

MBR では扱えるハードディスクの容量は 2 TB までだが、GPT では 2TB の制限はなくなり、パーティションも最大 128 個まで作成可能。
fdisk コマンドは GPT に対応していないため、GPT を利用するには gdisk コマンドを使用する。
サブコマンドは fdisk と同様。

$ sudo gdisk /dev/xvdc  
GPT fdisk (gdisk) version 0.8.10  
  
Partition table scan:  
  MBR: protective  
  BSD: not present  
  APM: not present  
  GPT: present  
  
Found valid GPT with protective MBR; using GPT.  
  
Command (? for help): p  
Disk /dev/xvdc: 629145600 sectors, 300.0 GiB  
Logical sector size: 512 bytes  
Disk identifier (GUID): AC83C524-7C06-4AB1-B7B4-9D4F63B7B0ED  
Partition table holds up to 128 entries  
First usable sector is 34, last usable sector is 629145566  
Partitions will be aligned on 2048-sector boundaries  
Total free space is 629145533 sectors (300.0 GiB)  
  
Number  Start (sector)    End (sector)  Size       Code  Name  
  
Command (? for help): n  
Partition number (1-128, default 1): 1  
First sector (34-629145566, default = 2048) or {+-}size{KMGTP}:   
Last sector (2048-629145566, default = 629145566) or {+-}size{KMGTP}: +500M  
Current type is 'Linux filesystem'  
Hex code or GUID (L to show codes, Enter = 8300):   
Changed type of partition to 'Linux filesystem'  
  
Command (? for help): p  
Disk /dev/xvdc: 629145600 sectors, 300.0 GiB  
Logical sector size: 512 bytes  
Disk identifier (GUID): AC83C524-7C06-4AB1-B7B4-9D4F63B7B0ED  
Partition table holds up to 128 entries  
First usable sector is 34, last usable sector is 629145566  
Partitions will be aligned on 2048-sector boundaries  
Total free space is 628121533 sectors (299.5 GiB)  
  
Number  Start (sector)    End (sector)  Size       Code  Name  
   1            2048         1026047   500.0 MiB   8300  Linux filesystem  
  
Command (? for help): w  
  
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING  
PARTITIONS!!  
  
Do you want to proceed? (Y/N): Y  
OK; writing new GUID partition table (GPT) to /dev/xvdc.  
The operation has completed successfully.  

6 個パーティション作成してみた。

$ lsblk | grep xvdc  
xvdc    202:32   0  300G  0 disk   
├─xvdc6 202:38   0  500M  0 part   
├─xvdc4 202:36   0  500M  0 part   
├─xvdc2 202:34   0  500M  0 part   
├─xvdc5 202:37   0  500M  0 part   
├─xvdc3 202:35   0  500M  0 part   
└─xvdc1 202:33   0  500M  0 part   

parted

MBR にも GPT にも対応している。

サブコマンド 説明
check 番号 ファイルシステムの簡単なチェックを行う
mklabel [gpt msdos]
mkpart 種別 開始 終了 指定した種別のパーティションを作成する
rm 番号 指定したパーティションを削除する
print、p パーティションテーブルを表示する
quit、q 終了する
$ sudo parted /dev/xvdf  
GNU Parted 2.1  
Using /dev/xvdf  
Welcome to GNU Parted! Type 'help' to view a list of commands.  
(parted) mklabel gpt                                                        
(parted) mkpart                                                             
Partition name?  []? data                                                   
File system type?  [ext2]?                                                  
Start? 1                                                                    
End? 500M                                                                   
(parted) p                                                                  
Model: Xen Virtual Block Device (xvd)  
Disk /dev/xvdf: 32.2GB  
Sector size (logical/physical): 512B/512B  
Partition Table: gpt  
  
Number  Start   End    Size   File system  Name  Flags  
 1      1049kB  500MB  499MB               data  
  
(parted) q                                                                  
Information: You may need to update /etc/fstab.  

対話式じゃなくても実行できる。

$ sudo parted /dev/xvdf -s mkpart data ext4 500 2G  
$ sudo parted /dev/xvdf   
GNU Parted 2.1  
Using /dev/xvdf  
Welcome to GNU Parted! Type 'help' to view a list of commands.  
(parted) p                                                                  
Model: Xen Virtual Block Device (xvd)  
Disk /dev/xvdf: 32.2GB  
Sector size (logical/physical): 512B/512B  
Partition Table: gpt  
  
Number  Start   End     Size    File system  Name  Flags  
 1      1049kB  500MB   499MB                data  
 2      500MB   2000MB  1499MB               data  

 © 2023, Dealing with Ambiguity