0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Linux】DISK構成コマンド

Last updated at Posted at 2020-07-17

パーティション切ってさくっと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の方が書き込みを行わない分高速

以上。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?