これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。
HTML ファイル生成日時: 2025/02/05 10:13:00.007 (台灣標準時)
NetBSD での GPT (GUID Partition Table) によるディスク (ハードディスク, SSD) のパーティションの管理の方法について記録を残しておくでござる。
ここでは、 /dev/ld1 として認識されているディスクのパーティションを管理 することを考えるでござる。
現在のパーティションの状況を表示させるためには以下のようにすればよいで ござる。
# gpt show ld1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 46 Unused 80 67108864 1 GPT part - NetBSD FFSv1/FFSv2 67108944 134217728 2 GPT part - NetBSD FFSv1/FFSv2 201326672 268435456 3 GPT part - NetBSD FFSv1/FFSv2 469762128 1073741824 4 GPT part - NetBSD FFSv1/FFSv2 1543503952 335544320 5 GPT part - NetBSD FFSv1/FFSv2 1879048272 121360959 6 GPT part - NetBSD FFSv1/FFSv2 2000409231 32 Sec GPT table 2000409263 1 Sec GPT header
全てのパーティションを消し去るためには、以下のようにすればよいでござる。
# gpt destroy ld1
全てのパーティションを消去したあとのディスクの状況を表示させてみるでご ざる。何もなくなったでござる。
# gpt show ld1 GPT not found, displaying data from MBR. start size index contents 0 2000409264 Unused
新たに GPT によるパーティションを作成するでござる。まず、ディスクを GPT で初期化するでござる。
# gpt create ld1
GPT で初期化したばかりのディスクの様子を表示させてみるでござる。 GPT header と GPT table が作られたでござる。
# gpt show ld1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 2000409197 Unused 2000409231 32 Sec GPT table 2000409263 1 Sec GPT header
ディスクの先頭に大きさ 32 GB のパーティションを作るためには以下のよう にすればよいでござる。
# gpt add -s 32g ld1 /dev/rld1: Partition 1 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 34 67108864
新たなパーティションが作成されたかどうか確認してみるでござる。 NetBSD FFS のパーティションができたでござる。
# gpt show ld1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 67108864 1 GPT part - NetBSD FFSv1/FFSv2 67108898 1933300333 Unused 2000409231 32 Sec GPT table 2000409263 1 Sec GPT header
32 GB のパーティションの後ろに、大きさ 64 GB のパーティションを作るに は、以下のようにすればよいでござる。
# gpt add -s 64g ld1 /dev/rld1: Partition 2 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 67108898 134217728
作成できたかどうか確認してみるでござる。
# gpt show ld1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 67108864 1 GPT part - NetBSD FFSv1/FFSv2 67108898 134217728 2 GPT part - NetBSD FFSv1/FFSv2 201326626 1799082605 Unused 2000409231 32 Sec GPT table 2000409263 1 Sec GPT header
今の空き領域の先頭に、大きさ 128 GB のパーティションを作るには以下のよ うにすればよいでござる。
# gpt add -s 128g ld1 /dev/rld1: Partition 3 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 201326626 268435456
作成できたかどうか確認してみるでござる。
# gpt add -s 128g ld1 /dev/rld1: Partition 3 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 201326626 268435456 taoyuan# gpt show ld1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 67108864 1 GPT part - NetBSD FFSv1/FFSv2 67108898 134217728 2 GPT part - NetBSD FFSv1/FFSv2 201326626 268435456 3 GPT part - NetBSD FFSv1/FFSv2 469762082 1530647149 Unused 2000409231 32 Sec GPT table 2000409263 1 Sec GPT header
現在の空き領域の先頭に 512 GB の大きさのパーティションを作成するでござ る。
# gpt add -s 512g ld1 /dev/rld1: Partition 4 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 469762082 1073741824
作成できたかどうか確認してみるでござる。
# gpt show ld1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 67108864 1 GPT part - NetBSD FFSv1/FFSv2 67108898 134217728 2 GPT part - NetBSD FFSv1/FFSv2 201326626 268435456 3 GPT part - NetBSD FFSv1/FFSv2 469762082 1073741824 4 GPT part - NetBSD FFSv1/FFSv2 1543503906 456905325 Unused 2000409231 32 Sec GPT table 2000409263 1 Sec GPT header
現在の空き領域の先頭に大きさ 64 GB のパーティションを作るでござる。
# gpt add -s 64g ld1 /dev/rld1: Partition 5 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 1543503906 134217728
作成できたかどうか確認してみるでござる。
# gpt show ld1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 67108864 1 GPT part - NetBSD FFSv1/FFSv2 67108898 134217728 2 GPT part - NetBSD FFSv1/FFSv2 201326626 268435456 3 GPT part - NetBSD FFSv1/FFSv2 469762082 1073741824 4 GPT part - NetBSD FFSv1/FFSv2 1543503906 134217728 5 GPT part - NetBSD FFSv1/FFSv2 1677721634 322687597 Unused 2000409231 32 Sec GPT table 2000409263 1 Sec GPT header
残りの空き領域の全てを使って最後のパーティションを作るには以下のように すればよいでござる。
# gpt add ld1 /dev/rld1: Partition 6 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 1677721634 322687597
作成できたかどうか確認してみるでござる。
# gpt show ld1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 67108864 1 GPT part - NetBSD FFSv1/FFSv2 67108898 134217728 2 GPT part - NetBSD FFSv1/FFSv2 201326626 268435456 3 GPT part - NetBSD FFSv1/FFSv2 469762082 1073741824 4 GPT part - NetBSD FFSv1/FFSv2 1543503906 134217728 5 GPT part - NetBSD FFSv1/FFSv2 1677721634 322687597 6 GPT part - NetBSD FFSv1/FFSv2 2000409231 32 Sec GPT table 2000409263 1 Sec GPT header
大きさ 64 GB の index 5 のパーティションは swap として使いたいので、 type を変更してみるでござる。
# gpt type -i 5 -T swap ld1 /dev/rld1: Partition 5 type changed
swap に変更されたかどうか確認してみるでござる。
# gpt show ld1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 67108864 1 GPT part - NetBSD FFSv1/FFSv2 67108898 134217728 2 GPT part - NetBSD FFSv1/FFSv2 201326626 268435456 3 GPT part - NetBSD FFSv1/FFSv2 469762082 1073741824 4 GPT part - NetBSD FFSv1/FFSv2 1543503906 134217728 5 GPT part - NetBSD swap 1677721634 322687597 6 GPT part - NetBSD FFSv1/FFSv2 2000409231 32 Sec GPT table 2000409263 1 Sec GPT header
index 1, 2, 3, 4, 6 のパーティションについては FFSv2 として使うので、 /dev/dk5, /dev/dk6, /dev/dk7, /dev/dk8, /dev/dk10 を -O2 オプションつ きで newfs するでござる。
# newfs -O2 /dev/rdk5 /dev/rdk5: 32768.0MB (67108864 sectors) block size 16384, fragment size 2048 using 178 cylinder groups of 184.09MB, 11782 blks, 22912 inodes. super-block backups (for fsck_ffs -b #) at: 160, 377184, 754208, 1131232, 1508256, 1885280, 2262304, 2639328, 3016352, ............................................................................... # newfs -O2 /dev/rdk6 /dev/rdk6: 65536.0MB (134217728 sectors) block size 16384, fragment size 2048 using 355 cylinder groups of 184.61MB, 11815 blks, 22976 inodes. super-block backups (for fsck_ffs -b #) at: 160, 378240, 756320, 1134400, 1512480, 1890560, 2268640, 2646720, 3024800, ............................................................................... # newfs -O2 /dev/rdk7 /dev/rdk7: 131072.0MB (268435456 sectors) block size 32768, fragment size 4096 using 177 cylinder groups of 740.53MB, 23697 blks, 46720 inodes. super-block backups (for fsck_ffs -b #) at: 192, 1516800, 3033408, 4550016, 6066624, 7583232, 9099840, 10616448, 12133056, ............................................................................... # newfs -O2 /dev/rdk8 /dev/rdk8: 524288.0MB (1073741824 sectors) block size 32768, fragment size 4096 using 707 cylinder groups of 741.59MB, 23731 blks, 46848 inodes. super-block backups (for fsck_ffs -b #) at: 192, 1518976, 3037760, 4556544, 6075328, 7594112, 9112896, 10631680, 12150464, ............................................................................... # newfs -O2 /dev/rdk10 /dev/rdk10: 157562.3MB (322687592 sectors) block size 32768, fragment size 4096 using 213 cylinder groups of 739.75MB, 23672 blks, 46720 inodes. super-block backups (for fsck_ffs -b #) at: 192, 1515200, 3030208, 4545216, 6060224, 7575232, 9090240, 10605248, 12120256, ...............................................................................
index 1, 2, 3, 4, 6 のパーティションについて disk wedge の ID を表示さ せるには以下のようにすればよいでござる。
# dkctl ld1 listwedges /dev/rld1: 6 wedges: dk5: 24d5c4fe-c91c-446d-9b40-a5ace61f1689, 67108864 blocks at 34, type: ffs dk6: 016fe7d6-eab7-43a0-942c-48c9adaf74fb, 134217728 blocks at 67108898, type: ffs dk7: ddb70f5b-5e31-4951-91e9-dbf312f7497d, 268435456 blocks at 201326626, type: ffs dk8: e5f25ff9-8503-41e9-bb64-617fcf81e5ea, 1073741824 blocks at 469762082, type: ffs dk9: 33938784-b6ef-400b-bc0c-85bdc1bb9a5c, 134217728 blocks at 1543503906, type: swap dk10: de15ae3c-5a0e-4efe-9355-50a85bc81e0f, 322687597 blocks at 1677721634, type: ffs
各パーティションを起動時にマウントするために、 /etc/fstab に以下の内容 を追加するでござる。
NAME=24d5c4fe-c91c-446d-9b40-a5ace61f1689 /usr/local ffs rw 1 2 NAME=016fe7d6-eab7-43a0-942c-48c9adaf74fb /usr/pkg ffs rw 1 2 NAME=ddb70f5b-5e31-4951-91e9-dbf312f7497d /source ffs rw 1 2 NAME=e5f25ff9-8503-41e9-bb64-617fcf81e5ea /vm ffs rw 1 2 NAME=33938784-b6ef-400b-bc0c-85bdc1bb9a5c none swap sw,dp 0 0 NAME=de15ae3c-5a0e-4efe-9355-50a85bc81e0f /home ffs rw 1 2
mount point を作成するでござる。
# mkdir /usr/local # mkdir /usr/pkg # mkdir /source # mkdir /vm # mkdir /home
新たに作ったパーティションをマウントしてみるでござる。
# mount -a
マウントできたのかどうか確認してみるでござる。
# df -m /dev/dk5 /dev/dk6 /dev/dk7 /dev/dk8 /dev/dk10 Filesystem 1M-blocks Used Avail %Cap Mounted on /dev/dk5 31766 0 30178 0% /usr/local /dev/dk6 63533 0 60356 0% /usr/pkg /dev/dk7 129041 0 122589 0% /source /dev/dk8 516157 0 490349 0% /vm /dev/dk10 155119 0 147363 0% /home
現在の swap の状況を確認してみるでござる。
# swapctl -lh Device Size Used Avail Capacity Priority /dev/dk2 16G 0B 16G 0% 0
/dev/dk9 を swap に追加してみるでござる。
# swapctl -a /dev/dk9
/dev/dk9 を swap に追加できたかどうか確認してみるでござる。
# swapctl -lh Device Size Used Avail Capacity Priority /dev/dk2 16G 0B 16G 0% 0 /dev/dk9 64G 0B 64G 0% 0 Total 80G 0B 80G 0%
/dev/dk2 の priority を変更してみるでござる。
# swapctl -c -p 1 /dev/dk2
/dev/dk2 の priority が変更されたかどうか確認してみるでござる。
# swapctl -lh Device Size Used Avail Capacity Priority /dev/dk9 64G 0B 64G 0% 0 /dev/dk2 16G 0B 16G 0% 1 Total 80G 0B 80G 0%
/etc/fstab で swap の priority の設定を行うには、 priority=0 や proirity=1 などを追加すればよいようでござる。例えば、以下のようにすれ ばよいようでござる。
NAME=33938784-b6ef-400b-bc0c-85bdc1bb9a5c none swap sw,dp,priority=0 0 0
/etc/fstab に行った swap についての変更を反映させるには以下のようにす ればよいようでござる。
# /etc/rc.d/swap1 restart Removing block-type swap devices swapctl: removing /dev/dk2 as swap device swapctl: removing /dev/dk9 as swap device swapctl: setting dump device to /dev/dk2 swapctl: adding /dev/dk2 as swap device at priority 1 swapctl: setting dump device to /dev/dk9 swapctl: adding /dev/dk9 as swap device at priority 0
最初から type として swap を指定してパーティションを作成するためには、 以下のようにすればよいでござる。
# gpt destroy wd0 # gpt create wd0 # gpt show wd0 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 1953525101 Unused 1953525135 32 Sec GPT table 1953525167 1 Sec GPT header # gpt add -s 64g -t swap wd0
GPT によるパーティションの管理については、 gpt, dkctl, fstab などの manual pages を見ればよいでござる。