パーティション切ってさくっとFS作成・削除したい時用。
構成手順
・ディスク/パーティション確認
[root@host01 ~]# fdisk -l
Disk /dev/vda: 30 GiB, 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
Disklabel type: gpt
Disk identifier: D209C89E-EA5E-4FBD-B161-B461CCE297E0
Device Start End Sectors Size Type
/dev/vda1 2048 4095 2048 1M BIOS boot
/dev/vda2 4096 413695 409600 200M EFI System
/dev/vda3 413696 1642495 1228800 600M Linux extended boot
/dev/vda4 1642496 62914526 61272031 29.2G Linux filesystem
Disk /dev/vdb: 250 GiB, 268435456000 bytes, 524288000 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
1stDISK(/dev/sda)にOSがインストールされており、2ndDISKが/dev/vdbとして認識されている。
デバイス(パーティション)名は順に番号がつく。2つ目のディスクからは認識された記憶媒体順に末尾b,cと続く。
※ディスクデバイスでそのままFSを作成することもできる。
mkfs.xfs /dev/vdb
or
mkfs.ext4 /dev/vdb
・パーティション作成
[root@host01 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.37.4).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
This disk is currently in use - repartitioning is probably a bad idea.
It's recommended to umount all file systems, and swapoff all swap
partitions on this disk.
The device contains 'xfs' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x7ce67ba4.
Command (m for help):
nで新しいパーティションを切り出す
tでタイプ変更
dでパーティション削除
pで現在のパーティションを表示
wで反映
ディスク名に1から番号が付くパーティションが作成される
例:/dev/vdb1,/dev/vdb2,/dev/vdb3,,
(ついでに)LVMの場合
・PV作成・確認
pvcreate /dev/xxxx1
pvdisplay
できない場合はlvm2インストール
・VG作成・確認
vgcreate vg_xxxx /dev/xxxx1
vgdisplay
※補足
vgcreate vg_xxxx /dev/xvdc1 /dev/xvde1 /dev/xvdf1
とすることで複数PVから一つのVGを作成できる。
・LV作成・確認
lvcreate -n lv_xxxx -l 100%FREE vg_xxxx
or
lvcreate -n lv_xxxx -L 10G vg_xxxx
lvdisplay
パーティションのサイズすべて割り当てるか指定するかです。
・FS作成・確認
mkfs.xfs /dev/vdb1
or
mkfs.ext4 /dev/vg_xxxx/lv_xxx
FSタイプはだいたいxfsまたはext4
disk or Partition or LVMボリュームを指定する
・マウント
mount /dev/vdb1 /mnt
※(LVMの場合)
mount /dev/mapper/vg_xxxx-lv_xxxx /mountpoint
・設定後確認
[root@host01 ~]# lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
vda
├─vda1
├─vda2 vfat FAT16 7B77-95E7 192.8M 4% /boot/efi
├─vda3 xfs boot 5af62dc6-8d15-... 278.6M 48% /boot
└─vda4 xfs root aec1c1e8-3576-... 8.5G 71% /
vdb
├─vdb1 xfs ephemeral0 bf829dfa-cbdb-... 245.1G 2% /mnt
FSが作成されてない場合,MountPointが空で表示される
・マウント確認
[root@host01 ~]# df -H
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.2M 0 4.2M 0% /dev
tmpfs 8.3G 173k 8.3G 1% /dev/shm
tmpfs 3.3G 96M 3.3G 3% /run
/dev/vda4 32G 23G 9.2G 71% /
/dev/vda3 563M 270M 293M 49% /boot
/dev/vda2 210M 7.4M 203M 4% /boot/efi
/dev/vdb1 269G 5.2G 264G 2% /mnt
tmpfs 1.7G 0 1.7G 0% /run/user/1000
[root@poc-ocpfstp01 ~]#
・自動起動設定
[root@host01 ~]# vi /etc/fstab
UUID=aec1c1e8-3576-... / xfs defaults 0 0
UUID=5af62dc6-8d15-... /boot xfs defaults 0 0
UUID=7B77-95E7 /boot/efi vfat defaults,uid=0,gid=0,umask=077,shortname=winnt 0 2
/dev/vdb1 /mnt auto defaults,nofail,x-systemd.requires=cloud-init.service,_netdev,comment=cloudconfig 0 2
デバイス名でもUUIDを指定しても良い
UUIDはblkid
コマンドで確認できる
・FSチェック
e2fsck -f /dev/vdb1
・パーティションのリサイズ
既存のパーティションの容量を変更できる
※必ずバックアップを取っておくこと。またOSのパーティションを変にいじると起動しなくなる可能性有り
[root@host01 ~]# parted /dev/vdb
GNU Parted 3.5
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
(parted) resizepart 1 100G
Warning: Partition /dev/vdb1 is being used. Are you sure you want to continue?
Yes/No? Yes
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? Yes
(parted)
(parted) quit
Information: You may need to update /etc/fstab.
元に戻す手順
・全体確認
lsblk
blkid
・自動起動削除
vi /etc/fstab
エントリを消す
・アンマウント/確認
umount /mountpoint
df -h
・FS削除
wipefs -a /dev/vdb1
・LV削除(FSも削除される)
lvremove /dev/vg_xxxx/lv_xxxx
・VG削除
vgremove vg_backup
※
割り当てているPVが2つ以上の場合は削除できない。
複数のPVから構成している場合は
vgreduce vg_xxxx /dev/xvde1 /dev/xvdf1
でPVを外してから削除。
・PV削除
pvremove /dev/xxxx1
複数指定可
pvremove /dev/xxxx1 /dev/xxxx2 /dev/xxxx3
・パーティション削除
fdisk /dev/xxxxx
dでパーティション削除
pで現在のパーティションを表示
wで反映
・確認
df -h
lsblk
blkid
pvdisplay
vgdisplay
lvdisplay
fdisk -l
OMAKE
・/homeのLVM削除
RHEL9のデフォルトインストールでは、root領域以外のディスクがすべてLVMで/homeに割りあたってしまう。
これを解除してすべて/の領域としたい時の手順
以下、デフォルトの状態
[root@host01 ~]# df -H
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 4.2M 0 4.2M 0% /dev
tmpfs 270G 0 270G 0% /dev/shm
tmpfs 108G 76M 108G 1% /run
efivarfs 312k 215k 92k 71% /sys/firmware/efi/efivars
/dev/mapper/rhel-root 76G 5.9G 70G 8% /
/dev/mapper/rhel-home 3.8T 27G 3.8T 1% /home
/dev/sda2 1.1G 521M 487M 52% /boot
/dev/sda1 620M 7.4M 612M 2% /boot/efi
tmpfs 54G 62k 54G 1% /run/user/42
tmpfs 54G 37k 54G 1% /run/user/1000
[root@host01 ~]#
[root@host01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 3.5T 0 disk
├─sda1 8:1 0 592M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 3.5T 0 part
├─rhel-root 253:0 0 70G 0 lvm /
├─rhel-swap 253:1 0 4G 0 lvm [SWAP]
└─rhel-home 253:2 0 3.4T 0 lvm /home
[root@host01 ~]#
[root@host01 ~]# blkid
/dev/mapper/rhel-swap: UUID="dacc8c23-41c8-49f9-b8c4-bf53cdb7ee7d" TYPE="swap"
/dev/mapper/rhel-home: UUID="555764f7-874e-4eee-8dcf-5a666d195e4f" TYPE="xfs"
/dev/mapper/rhel-root: UUID="615e0a0e-e9ec-42c3-850c-f43177ae8c47" TYPE="xfs"
/dev/sda2: UUID="134b73ad-ec00-4162-8e76-d0ce457fe564" TYPE="xfs" PARTUUID="5d920359-1e72-4410-8d7e-3c2fef000260"
/dev/sda3: UUID="uaUNkw-F3J9-feJL-03vX-gFaf-jRfO-oZ8VNE" TYPE="LVM2_member" PARTUUID="43d60100-b377-4381-b75d-a6a03518a814"
/dev/sda1: UUID="5CC1-83AD" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="70ee3ede-84fa-435b-8796-3397618336fd"
実施手順
[root@host01 /]# mkdir -p /path/to/backup # バックアップ
[root@host01 /]#
[root@host01 /]# rsync -av /home/ /path/to/backup/
sending incremental file list
./
(略)
[root@host01 /]# umount /home # アンマウント。使用中などでできない場合は lsof +D /home → kill -9 PID
[root@host01 /]#
[root@host01 ~]# lvremove /dev/mapper/rhel-home # rhel-homeを削除
Do you really want to remove active logical volume rhel/home? [y/n]: y
Logical volume "home" successfully removed.
[root@host01 ~]#
[root@host01 ~]# lvextend -l +100%FREE /dev/mapper/rhel-root # rhel-root LVMsizeを拡張
Size of logical volume rhel/root changed from <69.99 GiB (17917 extents) to <3.49 TiB (913948 extents).
Logical volume rhel/root successfully resized.
[root@host01 ~]#
[root@host01 ~]# xfs_growfs / # / FSsizeを拡張
meta-data=/dev/mapper/rhel-root isize=512 agcount=4, agsize=4586752 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=18347008, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 18347008 to 935882752
[root@host01 ~]# vi /etc/fstab # /homeのエントリを削除
[root@host01 ~]#
[root@host01 ~]# mount -a
[root@host01 ~]#
[root@host01 ~]# rsync -av /path/to/backup/ /home/ #/homeリストア
実施後確認
[root@host01 ~]# df -H
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 4.2M 0 4.2M 0% /dev
tmpfs 270G 0 270G 0% /dev/shm
tmpfs 108G 76M 108G 1% /run
efivarfs 312k 215k 92k 71% /sys/firmware/efi/efivars
/dev/mapper/rhel-root 3.9T 33G 3.9T 1% /
/dev/sda2 1.1G 521M 487M 52% /boot
/dev/sda1 620M 7.4M 612M 2% /boot/efi
tmpfs 54G 62k 54G 1% /run/user/42
tmpfs 54G 37k 54G 1% /run/user/0
[root@host01 ~]#
[root@host01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 3.5T 0 disk
├─sda1 8:1 0 592M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 3.5T 0 part
├─rhel-root 253:0 0 3.5T 0 lvm /
└─rhel-swap 253:1 0 4G 0 lvm [SWAP]
[root@host01 ~]#
[root@host01 ~]# blkid
/dev/mapper/rhel-swap: UUID="dacc8c23-41c8-49f9-b8c4-bf53cdb7ee7d" TYPE="swap"
/dev/mapper/rhel-root: UUID="615e0a0e-e9ec-42c3-850c-f43177ae8c47" TYPE="xfs"
/dev/sda2: UUID="134b73ad-ec00-4162-8e76-d0ce457fe564" TYPE="xfs" PARTUUID="5d920359-1e72-4410-8d7e-3c2fef000260"
/dev/sda3: UUID="uaUNkw-F3J9-feJL-03vX-gFaf-jRfO-oZ8VNE" TYPE="LVM2_member" PARTUUID="43d60100-b377-4381-b75d-a6a03518a814"
/dev/sda1: UUID="5CC1-83AD" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="70ee3ede-84fa-435b-8796-3397618336fd"
・認識されている物理ディスクでrootのボリュームを増やす
たとえば上記からさrにsdb,sdc,sddと物理ディスクが認識されている場合
# 1. 未使用ディスクの物理ボリューム化
pvcreate /dev/sdb
pvcreate /dev/sdc
pvcreate /dev/sdd
# 2. ボリュームグループに物理ボリュームを追加
vgextend rhel /dev/sdb
vgextend rhel /dev/sdc
vgextend rhel /dev/sdd
# 3. 論理ボリュームを拡張
lvextend -l +100%FREE /dev/rhel/root
# 4. ファイルシステムをリサイズ
resize2fs /dev/rhel/root # ext4の場合
xfs_growfs / # xfsの場合
・ディスクの初期化
ディスクの内容を全削除したい場合
dd if=/dev/zero of=/dev/sdb bs=1G status=progress
or
blkdiscard /dev/sdb
blkdiscardの方が書き込みを行わない分高速
以上。