はじめに
LPIC 1 で習った内容だが,実践する機会に恵まれなかったLinux での論理ボリューム作成等の方法について,実際に実行してみたのでまとめてみた.
前提
- OSはCent OS 8
- 追加のデバイスがOS に認識されている
- /data01 (マウント先)が作成されている
- コマンドが存在しない場合は以下のようにインストールしておく (以下は、Ubuntuの場合)
- sudo apt install lvm2
- sudo apt install xfsprogs
デバイスの確認
lsblk コマンドを実行し,デバイスを確認する.今回は,ディスク容量30 GB のsdb をマウントする.
# lsblk
AME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─cl-root 253:0 0 17G 0 lvm /
└─cl-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 30G 0 disk <-こいつを使えるようにする
sr0 11:0 1 6.7G 0 rom /run/media/centos/CentOS-8-BaseOS-x86_64
LVM ボリュームの作成
fdisk コマンドを実行し,LVM ボリュームを作成する.
# fdisk /dev/sdb
fdisk (util-linux 2.32.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。
デバイスには認識可能なパーティション情報が含まれていません。
新しい DOS ディスクラベルを作成しました。識別子は 0x1a7585c5 です。
コマンド (m でヘルプ): m
ヘルプ:
DOS (MBR)
a 起動可能フラグを切り替えます
b 入れ子の BSD ディスクラベルを編集します
c DOS 互換フラグを切り替えます
一般
d パーティションを削除します
F パーティションのない領域を一覧表示します
l 既知のパーティションタイプを一覧表示します
n 新しいパーティションを追加します
p パーティション情報を表示します
t パーティションタイプを変更します
v パーティション情報を検証します
i パーティションの情報を表示します
その他
m このメニューを表示します
u 表示項目の単位を変更します
x 特殊機能に移動します (熟練者向け機能)
スクリプト
I ディスクのレイアウトを sfdisk 互換のスクリプトから読み込みます
O ディスクのレイアウトを sfdisk 互換のスクリプトに書き出します
保存と終了
w パーティション情報をディスクに書き込んで終了します
q 変更点を保存せずに終了します
新しいラベルを作成します
g 新しい (何もない) GPT パーティションテーブルを作成します
G 新しい (何もない) SGI (IRIX) パーティションテーブルを作成します
o 新しい (何もない) DOS パーティションテーブルを作成します
s 新しい (何もない) Sun パーティションテーブルを作成します
コマンド (m でヘルプ): n
パーティションタイプ
p 基本パーティション (0 プライマリ, 0 拡張, 4 空き)
e 拡張領域 (論理パーティションが入ります)
選択 (既定値 p):
既定の回答 p であるものとみなします。
パーティション番号 (1-4, 既定値 1):
最初のセクタ (2048-62914559, 既定値 2048):
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (2048-62914559, 既定値 62914559): 62914559
新しいパーティション 1 をタイプ Linux、サイズ 30 GiB で作成しました。
コマンド (m でヘルプ): t
パーティション 1 を選択
16 進数コード (L で利用可能なコードを一覧表示します): L
0 空 24 NEC DOS 81 Minix / 古い Li bf Solaris
1 FAT12 27 隠し NTFS WinRE 82 Linux スワップ c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 隠し OS/2 また c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 拡張領域 c7 Syrinx
5 拡張領域 41 PPC PReP Boot 86 NTFS ボリューム da 非 FS データ
6 FAT16 42 SFS 87 NTFS ボリューム db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux プレーン de Dell ユーティリ
8 AIX 4e QNX4.x 第2パー 8e Linux LVM df BootIt
9 AIX 起動可能 4f QNX4.x 第3パー 93 Amoeba e1 DOS access
a OS/2 ブートマネ 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad ハ ea Rufus alignment
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD eb BeOS fs
f W95 拡張領域 (L 54 OnTrackDM6 a6 OpenBSD ee GPT
10 OPUS 55 EZ-Drive a7 NeXTSTEP ef EFI (FAT-12/16/
11 隠し FAT12 56 Golden Bow a8 Darwin UFS f0 Linux/PA-RISC
12 Compaq 診断 5c Priam Edisk a9 NetBSD f1 SpeedStor
14 隠し FAT16 <32M 61 SpeedStor ab Darwin ブート f4 SpeedStor
16 隠し FAT16 63 GNU HURD または af HFS / HFS+ f2 DOS セカンダリ
17 隠し HPFS/NTFS 64 Novell Netware b7 BSDI fs fb VMware VMFS
18 AST SmartSleep 65 Novell Netware b8 BSDI スワップ fc VMware VMKCORE
1b 隠し W95 FAT32 70 DiskSecure Mult bb 隠し Boot Wizar fd Linux raid 自動
1c 隠し W95 FAT32 75 PC/IX bc Acronis FAT32 L fe LANstep
1e 隠し W95 FAT16 80 古い Minix be Solaris ブート ff BBT
16 進数コード (L で利用可能なコードを一覧表示します): 8e
パーティションのタイプを 'Linux' から 'Linux LVM' に変更しました。
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。
最後の「w」を実行するまで,設定は書き込まれないので,誤った場合は,「q」でいったん終了させる.
パーティションの確認
パーティションの状況を確認する.
# fdisk -l /dev/sdb
ディスク /dev/sdb: 30 GiB, 32212254720 バイト, 62914560 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x1a7585c5
デバイス 起動 開始位置 終了位置 セクタ サイズ Id タイプ
/dev/sdb1 2048 62914559 62912512 30G 8e Linux LVM
物理ボリュームの作成
pvcreate コマンドを実行し,物理ボリュームを作成する.
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
物理ボリュームの確認
pvdisplay コマンドを実行し,作成結果を確認する.
# pvdisplay
"/dev/sdb1" is a new physical volume of "<30.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <30.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID Ix3Usf-par2-FMNM-XW0A-6tBl-5clP-4CmxxJ
ボリュームグループの作成
ボリュームグループを作成する.今回はVG01 という名前にする.
# vgcreate VG01 /dev/sdb1
Volume group "VG01" successfully created
ボリュームグループの確認
vgdisplay コマンドを実行する.
# vgdisplay
--- Volume group ---
VG Name VG01
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <30.00 GiB
PE Size 4.00 MiB
Total PE 7679
Alloc PE / Size 0 / 0
Free PE / Size 7679 / <30.00 GiB
VG UUID nuCPxf-O2hG-7XyC-YGgZ-yGJu-om25-IMtsqU
vgscan コマンドを実行する.
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "VG01" using metadata type lvm2
論理グループの作成
lvcreate コマンドを実行し,論理グループを作成する.
# lvcreate --name data -l 100%FREE VG01
Logical volume "data" created.
論理グループの確認
lvdisplay コマンドを実行し,作成結果を確認する.
# lvdisplay
--- Logical volume ---
LV Path /dev/VG01/data
LV Name data
VG Name VG01
LV UUID zHliYv-65wo-VmiQ-fRCO-YXR1-UBj8-5U7ZdI
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-06-17 12:52:27 +0900
LV Status available
# open 0
LV Size <30.00 GiB
Current LE 7679
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
ファイルシステムの作成
以下のコマンドを実行し,ファイルシステムを作成する.
# mkfs.xfs /dev/VG01/data
meta-data=/dev/VG01/data isize=512 agcount=4, agsize=1965824 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=7863296, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=3839, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
マウントの実行
/etc/fstab の末尾に追記をして,マウントを実行する.
マウントポイントのディレクトリはあらかじめ作成しておくこと
/dev/VG01/data /data xfs defaults 0 0
設定を反映する.
# mount -a
エラーメッセージが出力されなければ,OK.
ディスクサイズの確認
最後に,ディスクサイズを確認する.
# df -h
/dev/mapper/VG01-data 30G 247M 30G 1% /data01
ちゃんとマウントされていて,ディスクサイズも確認できる.