よくやるくせにすぐ忘れるので、備忘のためのメモ。
大まかな手順は、右下の目次を見ていただければ。
環境
Windows上のVirtualBox
[root@localhost ~]# cat /etc/redhat-release
Rocky Linux release 8.7 (Green Obsidian)
[root@localhost ~]#
デバイスの準備
HDDをマウントできる状態にフォーマットする。
追加したデバイスが見えるのを確認。
[asdf@localhost ~]$ su -
[root@localhost ~]# parted -l
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 53.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 53.7GB 52.6GB primary lvm
エラー: /dev/sdb: ディスクラベルが認識できません。
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 558GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:
[root@localhost ~]#
/dev/sdb
を新しいディスク領域として使えるようにする。
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.2
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted)
(parted)
(parted) p
エラー: /dev/sdb: ディスクラベルが認識できません。
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 558GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: unknown
ディスクフラグ:
(parted)
パーティションテーブルを追加。
(parted) mklabel gpt
(parted)
(parted) p
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 558GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
(parted)
使用する領域を定義。今回は全部丸ごと1個にする。
(parted)
(parted) mkpart
パーティションの名前? []? test
ファイルシステムの種類? [ext2]? xfs
開始? 0%
終了? 100%
(parted)
(parted)
(parted) p
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 558GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 558GB 558GB xfs test
(parted)
partedの実行直後の状態。
[root@localhost ~]# parted -l
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sda: 53.7GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 53.7GB 52.6GB primary lvm
モデル: ATA VBOX HARDDISK (scsi)
ディスク /dev/sdb: 558GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 558GB 558GB test
[root@localhost ~]#
xfsでフォーマット
いつもやる間違いだが、/dev/sdb
じゃなくて、作ったパーティションをフォーマットするので
/dev/sdb1
をフォーマット対象とする。
[root@localhost ~]#
[root@localhost ~]# mkfs.xfs /dev/sdb
sdb sdb1
[root@localhost ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=34078592 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=136314368, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=66559, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]#
linux側でマウントする設定を追加する。
fstabの修正
[root@localhost ~]#
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Dec 1 13:27:22 2022
#
# 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/rl-root / xfs defaults 0 0
UUID=aiueokakikukekosas /boot xfs defaults 0 0
/dev/mapper/rl-swap none swap defaults 0 0
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# echo "/dev/sdb1 /test xfs defaults 0 0" >> /etc/fstab
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Dec 1 13:27:22 2022
#
# 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/rl-root / xfs defaults 0 0
UUID=aiueokakikukekosas /boot xfs defaults 0 0
/dev/mapper/rl-swap none swap defaults 0 0
/dev/sdb1 /test xfs defaults 0 0
[root@localhost ~]#
systemd経由でmountユニットを生成
[root@localhost ~]#
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# ll /run/systemd/generator
合計 16
-rw-r--r--. 1 root root 215 5月 13 18:22 -.mount
-rw-r--r--. 1 root root 254 5月 13 18:22 boot.mount
-rw-r--r--. 1 root root 228 5月 13 18:22 'dev-mapper-rl\x2dswap.swap'
drwxr-xr-x. 2 root root 100 5月 13 18:22 local-fs.target.requires
drwxr-xr-x. 2 root root 60 5月 13 18:22 swap.target.requires
-rw-r--r--. 1 root root 209 5月 13 18:22 test.mount
[root@localhost ~]#
いざ、マウント
[root@localhost ~]#
[root@localhost ~]# systemctl start test.mount
[root@localhost ~]#
[root@localhost ~]# df -kh
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.7M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/rl-root 44G 14G 31G 32% /
/dev/sda1 1014M 245M 770M 25% /boot
overlay 44G 14G 31G 32% /var/lib/docker/overlay2/f9b2e44d7c8948cba8b1f746a391226a8f465a85404ab2cb6d7076bec6a7e008/merged
overlay 44G 14G 31G 32% /var/lib/docker/overlay2/1f4f0128b4c1875ddabbc61004aedfe6e8579b3e2e47e538c1c2a87368e6c709/merged
overlay 44G 14G 31G 32% /var/lib/docker/overlay2/d0f3ea2fcbb995750d974b293b91355b1e013df69691ded012955eb49b42ce59/merged
tmpfs 796M 0 796M 0% /run/user/1000
/dev/sdb1 520G 3.7G 517G 1% /test
[root@localhost ~]#
※はじめmount -a
と書いていたが、せっかくsystemd管理にしているのでsystemctl start test.mount
に修正。
追記
ディスクラベル名/dev/sdb1
だと、なぜか再起動すると名前が変わって起動に失敗し、エマージェンシーモードに入ってしまう。
大昔のCentOSが復活した気分だが、原因がわからないので、とりあえずfstabの記述をUUIDに変更して再度systemdからgenerateする。
[root@localhost ~]#
[root@localhost ~]# ll /dev/disk/by-uuid/ | grep sdb1
lrwxrwxrwx. 1 root root 10 5月 13 18:46 ad5d7f46-2f2f-488a-b3c5-c790cd664f7f -> ../../sdb1
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Dec 1 13:27:22 2022
#
# 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/rl-root / xfs defaults 0 0
UUID=569f42c6-e46f-456a-afe2-5ec786d9eb18 /boot xfs defaults 0 0
/dev/mapper/rl-swap none swap defaults 0 0
UUID=ad5d7f46-2f2f-488a-b3c5-c790cd664f7f /test xfs defaults 0 0
[root@localhost ~]#
こういう公開記事の時って、UUIDってマスクとかしたほうがいいんですかね?