Notebook

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

HTML ファイル生成日時: 2024/12/21 11:44:57.596 (台灣標準時)

NetBSD で GPT を使いハードディスクを初期化する方法

NetBSD で GPT を使いハードディスクをフォーマットする方法を記録しておく。

ハードディスクを接続する

まず、ハードディスクを接続する。ケーブルをつなぐと、以下のようにして接 続が確認できるはずである。この場合、ハードディスクが sd0 として認識さ れている。

# dmesg | tail -11
[ 370711.767884] umass0 at uhub0 port 1 configuration 1 interface 0
[ 370711.767884] umass0: TOSHIBA (0x480) External USB 3.0 (0x900), rev 3.00/3.15, addr 1
[ 370711.767884] umass0: using SCSI over Bulk-Only
[ 370711.767884] scsibus0 at umass0: 2 targets, 1 lun per target
[ 370718.223385] sd0 at scsibus0 target 0 lun 0:  disk fixed
[ 370718.223385] sd0: fabricating a geometry
[ 370718.223385] sd0: 3726 GB, 3815447 cyl, 64 head, 32 sec, 512 bytes/sect x 7814037164 sectors
[ 370718.233393] sd0: fabricating a geometry
[ 370718.233393] sd0: GPT GUID: d6a506e0-e81a-44eb-8fe5-f29f44af4e1d
[ 370718.233393] dk3 at sd0: "Microsoft reserved partition", 262144 blocks at 34, type: 
[ 370718.233393] dk4 at sd0: "Basic data partition", 7813771264 blocks at 264192, type: ntfs

現状の確認

まず、 gpt コマンドを使って、現在の状況を確認する。購入してからまだ何 もしていないハードディスクなので、 Windows で使えるように初期化された ままになっている。

# gpt show sd0
       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34      262144      1  GPT part - Windows reserved
      262178        2014         Unused
      264192  7813771264      2  GPT part - Windows basic data
  7814035456        1675         Unused
  7814037131          32         Sec GPT table
  7814037163           1         Sec GPT header

すべての情報を消し去る

今あるものを一旦すべて消去する。

# gpt destroy sd0

これで、すべての GPT 情報が消去されたはずなので、確認してみる。

# gpt show sd0
GPT not found, displaying data from MBR.

       start        size  index  contents
           0  7814037164         Unused

新たに GPT を作り直す

ここで、新たに GPT を作り直す。

# gpt create sd0

出来たかどうか確認してみる。

# gpt show sd0
       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34  7814037097         Unused
  7814037131          32         Sec GPT table
  7814037163           1         Sec GPT header

パーティションを追加する

GPT が出来ているようなので、パーティションを追加する。

# gpt add -b 80 sd0
/dev/rsd0: Partition 1 added: 49f48d5a-b10e-11dc-b99b-0019d1879648 80 7814037051

作ったパーティションを確認する。

# gpt show sd0
       start        size  index  contents
           0           1         PMBR
           1           1         Pri GPT header
           2          32         Pri GPT table
          34          46         Unused
          80  7814037051      1  GPT part - NetBSD FFSv1/FFSv2
  7814037131          32         Sec GPT table
  7814037163           1         Sec GPT header

出来た wedge を表示させてみる

出来た wedge を表示させてみる。

# dkctl sd0 listwedges
/dev/rsd0: 1 wedge:
dk3: 6fa969b9-22f4-47de-b6af-072b5761bd7a, 7814037051 blocks at 80, type: ffs

新しく作ったパーティションは /dev/dk3 として見えていることが確認できる。 dmesg でも確認しておく。元々あった dk3 と dk4 が消去され、新しく dk3 が出来ていることがわかる。

# dmesg | tail -15
[ 370711.767884] umass0 at uhub0 port 1 configuration 1 interface 0
[ 370711.767884] umass0: TOSHIBA (0x480) External USB 3.0 (0x900), rev 3.00/3.15, addr 1
[ 370711.767884] umass0: using SCSI over Bulk-Only
[ 370711.767884] scsibus0 at umass0: 2 targets, 1 lun per target
[ 370718.223385] sd0 at scsibus0 target 0 lun 0:  disk fixed
[ 370718.223385] sd0: fabricating a geometry
[ 370718.223385] sd0: 3726 GB, 3815447 cyl, 64 head, 32 sec, 512 bytes/sect x 7814037164 sectors
[ 370718.233393] sd0: fabricating a geometry
[ 370718.233393] sd0: GPT GUID: d6a506e0-e81a-44eb-8fe5-f29f44af4e1d
[ 370718.233393] dk3 at sd0: "Microsoft reserved partition", 262144 blocks at 34, type: 
[ 370718.233393] dk4 at sd0: "Basic data partition", 7813771264 blocks at 264192, type: ntfs
[ 371409.081505] dk4 at sd0 (Basic data partition) deleted
[ 371409.081505] dk3 at sd0 (Microsoft reserved partition) deleted
[ 371409.641982] sd0: GPT GUID: 0ee79da5-da74-44a7-bdf8-b1053fcf62ef
[ 371409.651988] dk3 at sd0: "6fa969b9-22f4-47de-b6af-072b5761bd7a", 7814037051 blocks at 80, type: ffs

newfs を使いファイルシステムを作成する

newfs コマンドを使って、ファイルシステムを作成する。 O2 オプションを使っ て FFSv2 でフォーマットする。

# newfs -O2 /dev/rdk3
/dev/rdk3: 3815447.8MB (7814037048 sectors) block size 32768, fragment size 4096
        using 5140 cylinder groups of 742.31MB, 23754 blks, 46848 inodes.
super-block backups (for fsck_ffs -b #) at:
192, 1520448, 3040704, 4560960, 6081216, 7601472, 9121728, 10641984, 12162240,
...............................................................................

マウントしてみる

以上の作業で、ハードディスクを利用できるようになったはずなので、マウン トしてみる。

# mount /dev/dk3 /mnt

何も文句を言われなかったのでうまくいったようである。 df コマンドで確認 してみる。

# df -g /dev/dk3
Filesystem    1G-blocks       Used      Avail %Cap Mounted on
/dev/dk3           3668          0       3484   0% /mnt

sticky bit をたてておく

一般ユーザーとして便利に使えるように sticky bit をたてておく。

# chmod 1777 /mnt
# ls -l / | grep mnt
drwxrwxrwt   2 root  wheel       512 Apr 11 16:40 mnt

これで、誰でも自分のデータを書き込めるが、別の人のデータは消すことがで きないようにすることができた。

ハードディスクの取り外し

ハードディスクを取り外すためには、 umount コマンドを使えばよい。

# umount /mnt


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. Food___Taiwan/20220429_0.html
  9. Computer___Network/20240130_00.html
  10. Computer___NetBSD/20220817_3.html
  11. Computer___Python/20220410_0.html
  12. Computer___Network/20240416_00.html
  13. Computer___NetBSD/20230119_00.html
  14. Computer___Debian/20210223_1.html
  15. Computer___Python/20221013_0.html
  16. Computer___Python/20210124_0.html
  17. Computer___NetBSD/20220428_0.html
  18. Computer___NetBSD/20220818_1.html
  19. Computer___NetBSD/20240101_02.html
  20. Science___Math/20220420_0.html
  21. Computer___Python/20240101_00.html
  22. Computer___NetBSD/20220808_0.html
  23. Computer___TeX/20230503_00.html
  24. Science___Astronomy/20220503_0.html
  25. Computer___NetBSD/20230515_00.html
  26. Computer___Network/20220413_1.html
  27. Computer___NetBSD/20210127_0.html
  28. Computer___TeX/20231107_00.html
  29. Computer___Python/20220816_1.html
  30. Computer___Python/20230717_01.html


HTML file generated by Kinoshita Daisuke.