11
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

fdiskコマンドでパーティション分割

 lpic101範囲のパーティション分割の理解を深めるために、fdiskコマンドでパーティション分割をやってみることにした。

環境

最初はDockerでやろうとしたけど、Dockerコンテナ内からではディスクの操作が出来なかったので仮想マシンでやることにした。

ホストOS: Ubuntu 16.04.6 LTS
仮想マシン: vagrant 2.2.6, VirtualBox 5.1.38_Ubuntur122592
ゲストOS: CentOS7

fdiskコマンドでパーティション情報の表示

fdisk -l デバイス名

デバイス名のパーティション情報を表示する。デバイス名を省略すると「/proc/partitions」に書かれているパーティション情報が表示される。

[vagrant@localhost ~]$ sudo fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 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: 0x0009ef88

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    83886079    41942016   83  Linux
[vagrant@localhost ~]$ cat /proc/partitions
major minor  #blocks  name

   8        0   41943040 sda
   8        1   41942016 sda1

fdisk -s デバイス名

指定したデバイスのブロック数を表示。

[vagrant@localhost ~]$ sudo fdisk -s /dev/sda 
41943040

fdiskコマンドでパーティション操作

fdisk デバイス名

対話モードで実行。

[vagrant@localhost ~]$ sudo fdisk /dev/sda
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.


Command (m for help):

パーティション作成

nでパーティションの作成。ハードディスクは4つまでのパーティションに分けることができる。現在は/dev/sda1が全て使っているのでNo free sectors availableと出力されて、新しくパーティションを作成できない。
/dev/sda: 42.9 GB
/dev/sda1: (83886079 - 2048) × 512 = 42948623872 ≒ 42.9 GB

Command (m for help): n   
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2
No free sectors available

まずパーティションを削除する。dが削除。

Command (m for help): d       
Selected partition 1
Partition 1 is deleted

Command (m for help): p

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 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: 0x0009ef88

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): 

パーティション作成。

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-83886079, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): +1G   
Partition 1 of type Linux and of size 1 GiB is set

Command (m for help): p

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 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: 0x0009ef88

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2099199     1048576   83  Linux

Command (m for help): 

1Gぶん割り当てられた。

拡張領域を作成

先ほどは基本領域でパーティションを作成した。次は拡張領域で作成する。拡張領域の中に論理パーティションを複数作成できる。

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
Partition number (2-4, default 2): 2
First sector (2099200-83886079, default 2099200): 2099200
Last sector, +sectors or +size{K,M,G} (2099200-83886079, default 83886079): +3G
Partition 2 of type Extended and of size 3 GiB is set

Command (m for help): p

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 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: 0x0009ef88

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2099199     1048576   83  Linux
/dev/sda2         2099200     8390655     3145728    5  Extended

論理パーティションの作成

作成した拡張領域に論理パーティションを作成していく。

Command (m for help): n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (2101248-8390655, default 2101248): 2101248
Last sector, +sectors or +size{K,M,G} (2101248-8390655, default 8390655): +1G
Partition 5 of type Linux and of size 1 GiB is set

Command (m for help): p

Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 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: 0x0009ef88

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2099199     1048576   83  Linux
/dev/sda2         2099200     8390655     3145728    5  Extended
/dev/sda5         2101248     4198399     1048576   83  Linux

作成が完了したら、wで保存。保存せずに終了するとパーティションは変更されない。

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.

終わりに

実際に手を動かすと覚えやすいので、これからもこの方法で知識を身に付けていこうと思います!
次回はマウント、スワップ領域の作成、シンボリックリンクをつくってみる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
11
Help us understand the problem. What are the problem?