ログイン中のQiita Team
ログイン中のチームがありません

Qiita Team にログイン
コミュニティ
OrganizationイベントアドベントカレンダーQiitadon (β)
サービス
Qiita JobsQiita ZineQiita Blog
RHEL8
centos8
1
どのような問題がありますか?

この記事は最終更新日から1年以上が経過しています。

[CentOS 8]ディスク、スワップの管理(メモ)

はじめに

ディスクのパーティション作成から、ファイルシステム作成、マウント、スワップの設定のメモです。
CentOS 8ですが、RHEL 8でも同じだと思います。

ブロックデバイスの確認

# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   12G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   11G  0 part
  ├─cl-root 253:0    0  9.8G  0 lvm  /
  └─cl-swap 253:1    0  1.2G  0 lvm  [SWAP]
sdb           8:16   0    1G  0 disk
sdc           8:32   0    1G  0 disk
sr0          11:0    1   57M  0 rom

3本のディスクと1つのCDROMがある。

命名規則

種類 ブロックデバイス
SATA/SAS /dev/sda, /dev/sdb, ・・・
virtio-blk準仮想化ストレージ /dev/vda, /dev/vdb, ・・・
NVMe /dev/nvme0, /dev/nvme1, ・・・
SDカード /dev/mmcblk0, /dev/mmcblk1, ・・・

ただし、/dev/sd* 形式で表示されるvirtio-scsi 準仮想化ストレージもある。
今回はVirtualBoxの仮想環境だが、/dev/sd* 形式で表示されている。

ディスクパーティションの管理

ディスクパーティションの種類

以下二つのパーティションがある

  • MBRパーティション
  • GPTパーティション
MBRパーティション GPTパーティション
最大パーティション数 4つの基本パーティション。拡張パーティションと論理パーティションを使用すると最大15個 128
ディスクとパーティションの最大サイズ 2TiB 8ZiB

パーティションの表示

# parted /dev/sda print
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 12.9GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  1075MB  1074MB  primary  ext4              boot
 2    1075MB  12.9GB  11.8GB  primary                    lvm

パーティションの作成

MBRパーティション

対話モード

# parted /dev/sdb
GNU Parted 3.2
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) print
エラー: /dev/sdb: ディスクラベルが認識できません。
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 1074MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:
(parted) mklabel
新しいディスクラベル? msdos
(parted) mkpart
パーティションの種類?  primary/プライマリ/extended/拡張? primary
ファイルシステムの種類?  [ext2]? xfs
開始? 2048s
終了? 100MB
(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

以下のようにワンライナーでも作成可能。
parted /dev/vdb mkpart primary xfs 2048s 1000MB

mkpartを繰り返して以下を作成。mklabelはディスクに対する設定なので、一回だけ。

# parted /dev/sdb print
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 1074MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  99.6MB  98.6MB  primary
 2    101MB   200MB   99.6MB  primary
 3    201MB   300MB   98.6MB  primary
 4    401MB   500MB   99.6MB  primary

GPTパーティション

対話モード

# parted /dev/sdc
GNU Parted 3.2
/dev/sdc を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) mklabel
新しいディスクラベル? gpt
(parted) mkpart
パーティションの名前?  []? par1
ファイルシステムの種類?  [ext2]? xfs
開始? 2048s
終了? 101MB
(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

以下のようにワンライナーでも作成可能

# parted /dev/vdb mkpart usersdata xfs 2048s 1000MB

mkpartを繰り返して以下を作成。mklabelはディスクに対する設定なので、一回だけ。

# parted /dev/sdc print
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdc: 1074MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了   サイズ  ファイルシステム  名前  フラグ
 1    1049kB  101MB  99.6MB                    par1
 2    102MB   201MB  99.6MB                    par2
 3    202MB   301MB  98.6MB                    par3
 4    302MB   401MB  98.6MB                    par4
 5    402MB   501MB  99.6MB                    par5
 6    502MB   601MB  98.6MB                    par6
 7    602MB   701MB  99.6MB                    par7

ファイルシステムの作成

ファイルシステムの作成はMBRとGPTで同じ。

MBRの場合

# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=6016 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=24064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1368, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

GPTの場合

# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1              isize=512    agcount=4, agsize=6080 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=24320, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1368, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

マウント

マウントポイントの作成

# mkdir /mbr01
# mkdir /gpt01

マウント

# mount /dev/sdb1 /mbr01
# mount /dev/sdc1 /gpt01
# df -h
ファイルシス        サイズ  使用  残り 使用% マウント位置
devtmpfs              886M     0  886M    0% /dev
tmpfs                 914M     0  914M    0% /dev/shm
tmpfs                 914M  9.2M  905M    2% /run
tmpfs                 914M     0  914M    0% /sys/fs/cgroup
/dev/mapper/cl-root   9.8G  4.3G  5.5G   44% /
/dev/sda1             976M  272M  638M   30% /boot
tmpfs                 183M  1.2M  182M    1% /run/user/42
tmpfs                 183M  4.0K  183M    1% /run/user/1000
/dev/sdb1              89M  5.6M   84M    7% /mbr01
/dev/sdc1              90M  5.7M   85M    7% /gpt01

永続的なマウント

mountコマンドだけだと、再起動するとアンマウントされるので、次回起動時も自動的にマウントする場合には、/etc/fstabに記載する。

UUIDの確認

# lsblk --fs
NAME        FSTYPE      LABEL          UUID                                   MOUNTPOINT
sda
├─sda1      ext4                       0e024b7c-76a2-497c-af24-dc2af0867e32   /boot
└─sda2      LVM2_member                tI6zf8-R2ZG-kSdK-5GPV-331t-sLXC-qRsodW
  ├─cl-root xfs                        aacbd61a-5c7d-4d68-8b9e-a5f19ac9090f   /
  └─cl-swap swap                       dccee9bf-77bf-47c9-9145-66d1c66ccd21   [SWAP]
sdb
├─sdb1      xfs                        f9f613b8-6d8a-43e8-b1e4-479e750170d7   /mbr01
├─sdb2
├─sdb3
└─sdb4
sdc
├─sdc1      xfs                        a82e01a1-2c40-4268-8d48-b9cdec9f2fea   /gpt01
├─sdc2
├─sdc3
├─sdc4
├─sdc5
├─sdc6
└─sdc7

/etc/fstabファイルへの追記

/etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jul 10 03:02:18 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=0e024b7c-76a2-497c-af24-dc2af0867e32 /boot                   ext4    defaults        1 2
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
UUID=f9f613b8-6d8a-43e8-b1e4-479e750170d7   /mbr01  xfs default 0   0 #追記
UUID=a82e01a1-2c40-4268-8d48-b9cdec9f2fea   /gpt01  xfs default 0   0 #追記

追記内容は左のフィールドから以下の通り

  1. 対象デバイス UUIDもしくはデバイスファイル(/dev/sdb1など)
  2. マウントポイント
  3. ファイルシステムタイプ
  4. デバイスに適用するオプション
  5. dumpコマンドによってデバイスのバックアップに使用される
  6. fsckの順序

ファイルへ追記後、systemctl daemon-reloadを実行する。

swapの管理

swapデバイス、使用量の確認

# swapon --show
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition 1.2G   0B   -2
# free
              total        used        free      shared  buff/cache   available
Mem:        1870900      541568      812204       10744      517128     1164324
Swap:       1261564           0     1261564

swapパーティションの作成

※未使用のパーティションは削除済み。

MBRの例。GPTも同じ。

# parted /dev/sdb
GNU Parted 3.2
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) mkpart
パーティションの種類?  primary/プライマリ/extended/拡張? primary
ファイルシステムの種類?  [ext2]? linux-swap
開始? 101MB
終了? 200MB
(parted) p
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 1074MB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:

番号  開始    終了    サイズ  タイプ   ファイルシステム  フラグ
 1    1049kB  99.6MB  98.6MB  primary  xfs
 2    101MB   200MB   99.6MB  primary  linux-swap(v1)    lba

(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   12G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   11G  0 part
  ├─cl-root 253:0    0  9.8G  0 lvm  /
  └─cl-swap 253:1    0  1.2G  0 lvm  [SWAP]
sdb           8:16   0    1G  0 disk
├─sdb1        8:17   0   94M  0 part /mbr01
└─sdb2        8:18   0   95M  0 part
sdc           8:32   0    1G  0 disk
├─sdc1        8:33   0   95M  0 part /gpt01
└─sdc2        8:34   0   95M  0 part
sr0          11:0    1   57M  0 rom

swapデバイスのフォーマット

# mkswap /dev/sdb2
スワップ空間バージョン 1 を設定します。サイズ = 95 MiB (99610624 バイト)
ラベルはありません, UUID=71f27145-83df-4169-ad7b-612625a6b8e4
# mkswap /dev/sdc2
スワップ空間バージョン 1 を設定します。サイズ = 95 MiB (99610624 バイト)
ラベルはありません, UUID=1355c990-780d-43cc-8ffc-f9ef71026511

swapの追加

# swapon /dev/sdb2
# swapon /dev/sdc2
# swapon --show
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition 1.2G   0B   -2
/dev/sdb2 partition  95M   0B   -3
/dev/sdc2 partition  95M   0B   -4
# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   12G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   11G  0 part
  ├─cl-root 253:0    0  9.8G  0 lvm  /
  └─cl-swap 253:1    0  1.2G  0 lvm  [SWAP]
sdb           8:16   0    1G  0 disk
├─sdb1        8:17   0   94M  0 part /mbr01
└─sdb2        8:18   0   95M  0 part [SWAP]
sdc           8:32   0    1G  0 disk
├─sdc1        8:33   0   95M  0 part /gpt01
└─sdc2        8:34   0   95M  0 part [SWAP]
sr0          11:0    1   57M  0 rom

swapデバイスの永続化

同様に/etc/fstabに記載する。

/etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jul 10 03:02:18 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=0e024b7c-76a2-497c-af24-dc2af0867e32 /boot                   ext4    defaults        1 2
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
UUID=f9f613b8-6d8a-43e8-b1e4-479e750170d7   /mbr01  xfs default 0   0
UUID=a82e01a1-2c40-4268-8d48-b9cdec9f2fea   /gpt01  xfs default 0   0
/dev/sdb2   swap    swap    defaults    0   0 #追記
/dev/sdc2   swap    swap    pri=5   0   0 #追記

ファイルへ追記後、systemctl daemon-reloadを実行する。

swapの優先度

使用するswapの優先度を設定するには、/etc/fstabファイルでpriオプションで指定する。
デフォルトの値は「-2」で数字が大きい順に使用する。

ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
dingtianhongjie
赤いベンダーでクラウドアーキテクトやってます。

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
Azure Kubernetes Serviceに関する記事を投稿しよう!
~
1
どのような問題がありますか?
ユーザー登録して、Qiitaをもっと便利に使ってみませんか

この機能を利用するにはログインする必要があります。ログインするとさらに下記の機能が使えます。

  1. ユーザーやタグのフォロー機能であなたにマッチした記事をお届け
  2. ストック機能で便利な情報を後から効率的に読み返せる
ユーザー登録ログイン
ストックするカテゴリー