Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2025/02/05 10:13:00.007 (台灣標準時)

NetBSD での GPT によるディスクのパーティションの管理について

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 を見ればよいでござる。



Frequently accessed files

  1. Computer___Python/20220518_0.html
  2. Computer___Network/20230726_00.html
  3. Misc___Taiwan/20240207_00.html
  4. Computer___Network/20230516_00.html
  5. Computer___FreeBSD/20220621_0.html
  6. Computer___Python/20220715_0.html
  7. Computer___Network/20230508_00.html
  8. Computer___Network/20240130_00.html
  9. Food___Taiwan/20220429_0.html
  10. Computer___Network/20240416_00.html
  11. Computer___NetBSD/20230119_00.html
  12. Computer___Python/20220410_0.html
  13. Computer___NetBSD/20220817_3.html
  14. Computer___Python/20221013_0.html
  15. Computer___Debian/20210223_1.html
  16. Computer___Python/20210124_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Computer___TeX/20231107_00.html
  20. Computer___NetBSD/20240101_02.html
  21. Computer___Python/20240101_00.html
  22. Science___Math/20220420_0.html
  23. Computer___Network/20220413_1.html
  24. Computer___TeX/20230503_00.html
  25. Computer___NetBSD/20220808_0.html
  26. Science___Astronomy/20220503_0.html
  27. Computer___NetBSD/20230515_00.html
  28. Misc___Japan/20240610_00.html
  29. Computer___NetBSD/20210127_0.html
  30. Computer___Python/20230717_01.html


HTML file generated by Kinoshita Daisuke.