SEワンタンの独学備忘録

IT関連の独学した内容や資格試験に対する取り組みの備忘録

【LPIC101】 パーティション管理コマンド LPICで学ぶLinux⑳


パーティションやファイルシステム管理系のコマンドについて扱います。
大前提として、パーティションに分割した領域にファイルシステムを作成していくということを押さえておくべきです。

パーティション管理コマンド

Linuxシステムを深く扱った経験があまりない場合、難所の一つになる部分になると思います。
利用者としてLinuxを使っているとこの辺のコマンドはあまり使う機会がないかと思います。

パーティションの基本については以下の記事でも先行して扱っています。
www.wantanblog.com

なおパーティション管理系コマンドについてはシステム自体に大きな影響を与えて、場合によっては復旧が不可能になることもあるそうなので、勉強用途で試してみる場合には壊れてもよい環境でやった方がよいでしょう。

※実際にパーティション、ファイルシステムのコマンドを弄ったら仮想マシン一つが起動できなくなりました。まぁそのつもりでやっていたので私的には問題なしですが

fdiskコマンド

fdiskコマンドはMBR方式のハードディスクにてパーティションの作成、削除、変更など対話的にを行うコマンドです。
MBR方式と強調しているのはGPT方式だと同様の操作を行うコマンドも変わってくるためです。ここは後述します。

「-l」オプション

fdiskコマンドに「-l」オプションを付与することによってパーティションテーブルの状態を表示することができます。
試験的には主要オプションはこのくらいです。

[root@localhost work]# fdisk -l /dev/sda

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 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: 0x000952e2

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     4812799     2098176   82  Linux swap / Solaris
/dev/sda3         4812800    62914559    29050880   83  Linux


サブコマンド

実際に実行するのが難しい場合でも試験的には実行に必要なサブコマンドはしっかりと覚えておく必要があります。
サブコマンドはオプションなしでfdiskコマンドを実行した場合に対話的な処理の中で入力(Command (m for help):)を求められるものになります。
オプションとは違うので区別して覚えておきましょう。

[root@localhost work]# 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):
サブコマンド 内容
l パーティションタイプを一覧表示
n パーティションを作成
d パーティションを削除
p パーティションテーブルを表示
t パーティションタイプを変更
w パーティションテーブルの変更を保存
p パーティションテーブルを保存しないで終了
m サブコマンドのメニュー(ヘルプ)表示

■パーティション操作の練習

以下を参考にさせていただきました。
fdiskコマンドでパーティション分割 - Qiita


・現在の状態を確認
3つのパーティションが存在している状態。

[root@localhost wantan]# fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 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: 0x000952e2

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     4812799     2098176   82  Linux swap / Solaris
/dev/sda3         4812800    62914559    29050880   83  Linux


・fdiskコマンドを実行
対話モードを表示する。

[root@localhost work]# 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):

・既存パーティションの削除
dコマンドで1番目を削除する。

Command (m for help): d
Partition number (1-3, default 3): 1
Partition 1 is deleted

Command (m for help):

・パーティションテーブルの確認
pコマンド。削除されていることを確認する。

Command (m for help): p

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 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: 0x000952e2

   Device Boot      Start         End      Blocks   Id  System
/dev/sda2          616448     4812799     2098176   82  Linux swap / Solaris
/dev/sda3         4812800    62914559    29050880   83  Linux

・パーティションの再作成
nコマンドで1番目のパーティションを作り直す。

Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (1,4, default 1): 1
First sector (2048-62914559, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-616447, default 616447):
Using default value 616447
Partition 1 of type Linux and of size 300 MiB is set

Command (m for help):

・パーティションテーブルの確認
pコマンド。再生成さてれていることを確認する。

Command (m for help): p

Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 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: 0x000952e2

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048      616447      307200   83  Linux
/dev/sda2          616448     4812799     2098176   82  Linux swap / Solaris
/dev/sda3         4812800    62914559    29050880   83  Linux

実際には保存して終了することで反映されるが、コマンドを試すだけなら実行しっぱなしで終了(q)してもよい。

gdiskコマンド

gdiskコマンドはfdiskコマンドと同じようにパーティションを管理するコマンドです。
違いはパーティション方式で、GPTの場合にはこちらのgdiskコマンドコマンドを使用します。

使い方も同じような感じ、現状ではfdiskコマンドの方が試験的には重要っぽい。

partedコマンド

partedコマンドはMBR形式、GPT形式をサポートするパーティション操作コマンドです。
主にパーティションテーブルの方式(MBR、GPT)を指定するなどの用途で使用されます。

partedコマンドはsdiskコマンドと同じように対話的にコマンドを実行する方法とワンラインで一気に実行する実行方法があります。

サブコマンド 内容
mklabel [gpt or msdos] 新しいパーティションテーブルを作成する
mkpart 指定した種類のパーティションを作成 ※書式は後述
rm [番号] 指定したパーティションを削除
print (p) パーティションを表示
quit (q) 終了する

サブコマンドのmkpartコマンドの書式は以下の通りです。

mkpart [ パーティションタイプ ファイルシステム種別 パーティション名 ] 開始位置 終了位置


■partedコマンドを実行してみる
以下、とりあえずでコマンドを実行しているので、システム動作の保証ができません。

・対話モードを表示

[root@localhost work]# parted /dev/sda
GNU Parted 3.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

・パーティションテーブルをGPTに

(parted) mklabel gpt
Warning: Partition(s) on /dev/sda are being used.
Ignore/Cancel? I
Warning: The existing disk label on /dev/sda will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? Yes
Error: Partition(s) 1, 2, 3 on /dev/sda have been written, but we have been
unable to inform the kernel of the change, probably because it/they are in use.
As a result, the old partition(s) will remain in use.  You should reboot now
before making further changes.
Ignore/Cancel? I

・パーティションの作成

(parted) mkpart primary ext4 1 1000MB
Error: Error informing the kernel about modifications to partition /dev/sda1 --
Device or resource busy.  This means Linux won't know about any changes you made
to /dev/sda1 until you reboot -- so you shouldn't mount it or use it in any way
before rebooting.
Ignore/Cancel? I
Error: Partition(s) 2, 3 on /dev/sda have been written, but we have been unable
to inform the kernel of the change, probably because it/they are in use.  As a
result, the old partition(s) will remain in use.  You should reboot now before
making further changes.
Ignore/Cancel? I
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size   File system  Name     Flags
 1      1049kB  1000MB  999MB  xfs          primary

「-s」オプションを付与することによりワンラインでも実行できます。

parted /dev/sdb -s mklabel gpt


適当に実行したら仮想マシンが起動できなくなりました。。試す場合はご注意を。

ーーーーーーーーーーーーーーーー
・前回(第十九回)
www.wantanblog.com

・次回(第二十一回)
www.wantanblog.com