20240409145451 USB HDDをRAID5にする
gdiskでパーティーションを作成。 USBなので起動するときに最初設定した場合と /dev/sda
などの表示が異なることもありえるので、 後でGUIDを使って指定する。最初はとりあえず1つずつ挿してgdiskをすればよい。
中古だからかもしれないが、 MBRが書きこまれていたので削除する作業が必要だった。
# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.9
Partition table scan:
MBR: MBR only
BSD: not present
APM: not present
GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************
Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): Y
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdc.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
上記終了後にpartition情報を書いた。
# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.9
Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present
Creating new GPT entries in memory.
Command (? for help): p
Disk /dev/sda: 11721045168 sectors, 5.5 TiB
Model: EZAZ-00ZGHB0
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 0578B29F-51A1-49C0-BE65-6956FBA95417
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 11721045134
Partitions will be aligned on 2048-sector boundaries
Total free space is 11721045101 sectors (5.5 TiB)
Number Start (sector) End (sector) Size Code Name
Command (? for help): n
Partition number (1-128, default 1): [ENTER]
First sector (34-11721045134, default = 2048) or {+-}size{KMGTP}: [ENTER]
Last sector (2048-11721045134, default = 11721043967) or {+-}size{KMGTP}: [ENTER]
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300): fd00 <- linux raidを指定
Changed type of partition to 'Linux RAID'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.
以上を3回くりかえす。
↓こんな感じになればOK。
# tree /dev/disk
...
├── by-partuuid
│ ├── 3fa55707-567f-4fcb-b391-1ad9ffbffab8 -> ../../sda1
│ ├── 6963ee24-45c4-410d-945a-32b611006e50 -> ../../sdb1
│ ├── 8649367f-4390-49e1-b389-a09c9033fdcb -> ../../nvme0n1p1
│ ├── bacd35fa-dfe7-43d1-8906-09069ae7b3e0 -> ../../sdc1
│ ├── e3d4c4c2-2e9d-49ad-859e-5824909a40fc -> ../../nvme0n1p2
│ └── f79f3a27-e396-4820-bc02-fd51e7e54bff -> ../../nvme0n1p3
...
この時点でうまくいかなくて再起動しようとしたら、インストール直後でUEFIの起動オーダーがUSBデバイスからになっていたため起動しなくなるという問題が発生。UEFIの設定を bootをnvmeにした。
# apt install mdadm
# mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/disk/by-partuuid/3fa55707-567f-4fcb-b391-1ad9ffbffab8 /dev/disk/by-partuuid/6963ee24-45c4-410d-945a-32b611006e50 /dev/disk/by-partuuid/bacd35fa-dfe7-43d1-8906-09069ae7b3e0
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
# mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Tue Apr 9 13:34:16 2024
Raid Level : raid5
Array Size : 11720777728 (10.92 TiB 12.00 TB)
Used Dev Size : 5860388864 (5.46 TiB 6.00 TB)
Raid Devices : 3
Total Devices : 3
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Tue Apr 9 13:35:03 2024
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Rebuild Status : 0% complete
Name : kinorr:1 (local to host kinorr)
UUID : 40475448:83c77036:4a8b1907:85cab891
Events : 10
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 17 1 active sync /dev/sdb1
3 8 33 2 spare rebuilding /dev/sdc1
できたっぽい。
この後、再起動しないと、mkfs.ext4
が device or resource busy
をなってしまったので再起動した。
# mkfs.ext4 -L kinoraid5 /dev/md1
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 2930194432 4k blocks and 366276608 inodes
Filesystem UUID: fcf8ecc4-59bc-4510-b0c0-adfde0cda386
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632,
2560000000
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
マウントは自動ではされないみたい。
# mkdir /mnt/raid-disk
# mount /dev/md1 /mnt/raid-disk
で、使えることを確認。 fstabに追加・・・はうまくいかなかった(外付けだから?理由は不明) systemdでマウントすることにした。
ファイル名とマウントポイントを一致させる必要があるなどややこしい。 (/mnt/hoge にマウントしたい場合は mnt-hoge.mount というファイル名にする必要があるらしい。) WantedBy= の所をギリギリまで遅くしている。
# cat /etc/systemd/system/raid.mount
[Unit]
Description=Mout Raid USB HDD(delayed)
[Mount]
What=/dev/disk/by-uuid/fcf8ecc4-59bc-4510-b0c0-adfde0cda386
Where=/raid
Type=ext4
Options=defaults
[Install]
WantedBy=multi-user.target
cf. systemd で外付けディスクをマウントする話 - げっとシステムログ