[OpenBSD] CentOSでUSBメモリーのローデバイスファイルを作成する。

ここが難しいところではないかと思います。このローデバイスに関する知識がないがために Linux 上で USB メモリーに BSD 系 OS のインストールイメージを作ることができない人が多いような気がします。

ローデバイスなんて過去のものというか最近の Linux だけ触ってたら知る必要すらないものかもしれません。

まずは USB メモリーを挿入し、CentOS がどのように認識するかを確認します。udevadm コマンドを実行してから USB メモリーを挿入します。

[root@localhost tmp]# udevadm monitor
monitor will print the received events for:
UDEV – the event which udev sends out after rule processing
KERNEL – the kernel ueventKERNEL[1439153907.539018] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2 (usb)
KERNEL[1439153907.539995] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0 (usb)
UDEV [1439153907.606090] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2 (usb)
KERNEL[1439153907.722493] add /module/usb_storage (module)
UDEV [1439153907.723066] add /module/usb_storage (module)
KERNEL[1439153907.725928] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6 (scsi)
KERNEL[1439153907.725982] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/scsi_host/host6 (scsi_host)
KERNEL[1439153907.726047] add /bus/usb/drivers/usb-storage (drivers)
UDEV [1439153907.726465] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0 (usb)
UDEV [1439153907.726507] add /bus/usb/drivers/usb-storage (drivers)
UDEV [1439153907.726928] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6 (scsi)
UDEV [1439153907.727326] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/scsi_host/host6 (scsi_host)
KERNEL[1439153908.797414] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0 (scsi)
KERNEL[1439153908.797467] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0 (scsi)
KERNEL[1439153908.797546] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/scsi_disk/6:0:0:0 (scsi_disk)
KERNEL[1439153908.797686] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/scsi_device/6:0:0:0 (scsi_device)
KERNEL[1439153908.797943] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/scsi_generic/sg2 (scsi_generic)
UDEV [1439153908.797987] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0 (scsi)
KERNEL[1439153908.798149] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/bsg/6:0:0:0 (bsg)
UDEV [1439153908.798826] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0 (scsi)
KERNEL[1439153908.801905] add /devices/virtual/bdi/8:16 (bdi)
UDEV [1439153908.801959] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/scsi_disk/6:0:0:0 (scsi_disk)
UDEV [1439153908.801996] add /devices/virtual/bdi/8:16 (bdi)
KERNEL[1439153908.803720] change /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0 (scsi)
UDEV [1439153908.806494] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/scsi_device/6:0:0:0 (scsi_device)
KERNEL[1439153908.807230] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb (block)
KERNEL[1439153908.807368] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb/sdb1 (block)
UDEV [1439153908.815701] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/bsg/6:0:0:0 (bsg)
UDEV [1439153908.815794] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/scsi_generic/sg2 (scsi_generic)
KERNEL[1439153908.816404] change /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb (block)
UDEV [1439153908.816631] change /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0 (scsi)
UDEV [1439153908.942018] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb (block)
UDEV [1439153909.036701] add /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb/sdb1 (block)
UDEV [1439153909.119947] change /devices/pci0000:00/0000:00:1d.7/usb1/1-2/1-2:1.0/host6/target6:0:0/6:0:0:0/block/sdb (block)
^C[root@localhost tmp]#

add とたくさん表示されていますがこれは USB メモリーが追加されたと捉えるとわかりやすいと思います。一番最後の行の後ろの方に出力されている sdb を覚えておきます。この sdb が USB メモリーのことになり、ファイル名をフルパスで指定すりと、/dev/sdb となります。

ここまでは多くの方がご存知でしょう。しかし、この /dev/sdb というのは細かく言うと、ブロックデバイスファイルと呼ばれるものです。UNIX 系 OS には2種類のデバイスファイルがあって、1つがブロックデバイスでもう一つがローデバイスです。1つのハードウェア(デバイス)に対して2つのファイルがあって、OS がそれを使い分けています。

そして、BSD 系 OS でインストールイメージを作成する場合、ローデバイスにしないといけないので USB メモリーのローデバイスファイルが必要になります。

それじゃあ、ローデバイスファイルはどれ?という話になりますが、これは作ってあげないといけません。CentOS で raw コマンドで作成します。

[root@localhost tmp]# sudo raw /dev/raw/raw1 /dev/sdb
/dev/raw/raw1: bound to major 8, minor 16
[root@localhost tmp]#
[root@localhost tmp]# ls -l /dev/raw
合計 0
crw-rw—-. 1 root disk 162, 1 8月 10 06:09 2015 raw1
crw-rw—-. 1 root disk 162, 0 8月 10 04:32 2015 rawctl
[root@localhost tmp]#

raw コマンドでしている raw1 の 1 は別の番号でも構いません。/dev/sdb のローデバイスファイルを /dev/raw/raw1 にする、といった意味のコマンドです。つまり、USB メモリーのローデバイスファイルが /dev/raw/raw1 ということです。

あまり詳しく調べていないのではっきり覚えていないのですが、raw コマンドで USB メモリーを指定する時に /dev/sdb1 などとしたら、たしかダメです。デバイスを丸ごと使わないといけないとかなんとかって情報があった気がするんですがうろ覚えです。

次の記事では、dd コマンドで OpenBSD のインストールイメージを USB メモリーに書き込んでいきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください