「デバイスファイル」の版間の差分
(作成) |
細 (→SCSI: 訳を修正) |
||
(2人の利用者による、間の5版が非表示) | |||
4行目: | 4行目: | ||
[[es:Device file]] |
[[es:Device file]] |
||
[[pt:Device file]] |
[[pt:Device file]] |
||
+ | [[ru:Device file]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|永続的なブロックデバイスの命名}} |
{{Related|永続的なブロックデバイスの命名}} |
||
10行目: | 11行目: | ||
:Unix ライクなオペレーティングシステムにおいて、デバイスファイルまたはスペシャルファイルとは通常のファイルのようにファイルシステム上に配置されるデバイスドライバーのインターフェイスである。 |
:Unix ライクなオペレーティングシステムにおいて、デバイスファイルまたはスペシャルファイルとは通常のファイルのようにファイルシステム上に配置されるデバイスドライバーのインターフェイスである。 |
||
− | Linux ではデバイスファイルは {{ic|/dev}} ディレクトリに存在します |
+ | [[Wikipedia:ja:Filesystem Hierarchy Standard|Filesystem Hierarchy Standard]] に従って Linux ではデバイスファイルは {{ic|/dev}} ディレクトリに存在します。 |
Arch Linux ではデバイスノードは [[udev]] によって管理されています。 |
Arch Linux ではデバイスノードは [[udev]] によって管理されています。 |
||
16行目: | 17行目: | ||
== ブロックデバイス == |
== ブロックデバイス == |
||
− | + | ブロックデバイスは特殊ファイルで、バッファを使ってハードウェアデバイスにアクセスできます。仮想ファイルシステムデバイスの詳細な説明と比較は [[Wikipedia:ja:デバイスファイル#ブロックデバイス|ブロックデバイス]] を見てください。 |
|
=== ブロックデバイスの名前 === |
=== ブロックデバイスの名前 === |
||
26行目: | 27行目: | ||
==== SCSI ==== |
==== SCSI ==== |
||
− | + | [[Wikipedia:ja:SCSIコマンド|SCSI コマンド]] ([[Wikipedia:ja:Small Computer System Interface|SCSI]]、[[Wikipedia:ja:Serial Attached SCSI|SAS]]、[[Wikipedia:ja:USB Attached SCSI|UASP]]) や ATA 接続 ([[Wikipedia:ja:Advanced_Technology_Attachment#パラレルATA|PATA]]、[[Wikipedia:ja:シリアルATA|SATA]])、[[Wikipedia:USB mass storage device class|USB マスストレージ]]接続のいずれかをサポートするストレージデバイス (ハードディスク、[[SSD]]、フラッシュドライブなど) は、Linux カーネルの SCSI ドライバサブシステムによって扱われます。これらのストレージデバイスは、同じ命名規則を使用します。 |
|
− | これらデバイスの名前は {{ic|sd}} から始まります。そして認識順に {{ic|a}} から始まる小文字の英字が後ろに続きます |
+ | これらデバイスの名前は {{ic|sd}} から始まります。そして認識順に {{ic|a}} から始まる小文字の英字が後ろに続きます。1番目に発見されたデバイスは {{ic|sda}}、2番目に発見されたデバイスは {{ic|sdb}} という風に続きます。 |
+ | 例: |
||
− | まとめ: |
||
* {{ic|/dev/sda}} - デバイス {{ic|a}}、最初に認識されたデバイス。 |
* {{ic|/dev/sda}} - デバイス {{ic|a}}、最初に認識されたデバイス。 |
||
− | * {{ic|/dev/sda1}} - デバイス {{ic|a}} のパーティション {{ic|1}}。 |
||
* {{ic|/dev/sde}} - デバイス {{ic|e}}、5番目に認識されたデバイス。 |
* {{ic|/dev/sde}} - デバイス {{ic|e}}、5番目に認識されたデバイス。 |
||
− | * {{ic|/dev/sde7}} - デバイス {{ic|e}} のパーティション {{ic|7}}。 |
||
− | ==== |
+ | ==== NVMe ==== |
− | [[NVM Express]] (NVMe) で接続された [[SSD]] などのストレージデバイスの名前は {{ic|nvme}} から始まります。その後ろにデバイスコントローラごとに {{ic|0}} から始まる数字が付きます。最初に認識された NVMe コントローラは {{ic|nvme0}}、2番目は {{ic|nvme1}} と続きます。そして "n" という文字とコントローラ上のデバイスを意味する {{ic|1}} から始まる数字が続きます。{{ic|nvme0n1}} は最初に認識されたコントローラの最初に認識されたデバイス。{{ic|nvme0n2}} は最初に認識されたコントローラの2番目のデバイス |
+ | [[NVM Express]] (NVMe) で接続された [[SSD]] などのストレージデバイスの名前は {{ic|nvme}} から始まります。その後ろにデバイスコントローラごとに {{ic|0}} から始まる数字が付きます。最初に認識された NVMe コントローラは {{ic|nvme0}}、2番目は {{ic|nvme1}} と続きます。そして "n" という文字とコントローラ上のデバイスを意味する {{ic|1}} から始まる数字が続きます。{{ic|nvme0n1}} は最初に認識されたコントローラの最初に認識されたデバイス。{{ic|nvme0n2}} は最初に認識されたコントローラの2番目のデバイスです。 |
+ | 例: |
||
− | まとめ: |
||
* {{ic|/dev/nvme0n1}} - コントローラ {{ic|0}} のデバイス {{ic|1}}。最初に認識されたコントローラの最初のデバイス。 |
* {{ic|/dev/nvme0n1}} - コントローラ {{ic|0}} のデバイス {{ic|1}}。最初に認識されたコントローラの最初のデバイス。 |
||
− | * {{ic|/dev/nvme0n1p1}} - コントローラ {{ic|0}} のデバイス {{ic|1}} のパーティション {{ic|1}}。 |
||
* {{ic|/dev/nvme2n5}} - コントローラ {{ic|2}} のデバイス {{ic|5}}。3番目に認識されたコントローラの5番目のデバイス。 |
* {{ic|/dev/nvme2n5}} - コントローラ {{ic|2}} のデバイス {{ic|5}}。3番目に認識されたコントローラの5番目のデバイス。 |
||
− | * {{ic|/dev/nvme2n5p7}} - コントローラ {{ic|2}} のデバイス {{ic|5}} のパーティション {{ic|7}}。 |
||
==== MMC ==== |
==== MMC ==== |
||
− | [[Wikipedia:ja:SDメモリーカード|SD カード]] |
+ | [[Wikipedia:ja:SDメモリーカード|SD カード]]、[[Wikipedia:ja:マルチメディアカード|MMC カード]], [[Wikipedia:ja:マルチメディアカード#eMMC|eMMC ストレージデバイス]]はカーネルの {{ic|mmc}} ドライバーによって管理され、デバイスの名前は {{ic|mmcblk}} から始まります。そして後ろに {{ic|0}} から始まる番号が付きます。例えば {{ic|mmcblk0}} は最初に認識されたデバイス、{{ic|mmcblk1}} は2番目に認識されたデバイスです。 |
+ | 例: |
||
− | まとめ: |
||
* {{ic|/dev/mmcblk0}} - デバイス {{ic|0}}、最初に認識されたデバイス。 |
* {{ic|/dev/mmcblk0}} - デバイス {{ic|0}}、最初に認識されたデバイス。 |
||
− | * {{ic|/dev/mmcblk0p1}} - デバイス {{ic|0}} のパーティション {{ic|1}}。 |
||
* {{ic|/dev/mmcblk4}} - デバイス {{ic|4}}、5番目に認識されたデバイス。 |
* {{ic|/dev/mmcblk4}} - デバイス {{ic|4}}、5番目に認識されたデバイス。 |
||
− | * {{ic|/dev/mmcblk4p7}} - デバイス {{ic|4}} のパーティション {{ic|7}}。 |
||
==== SCSI 光学ディスクドライブ ==== |
==== SCSI 光学ディスクドライブ ==== |
||
65行目: | 60行目: | ||
また、[[Udev]] によって {{ic|/dev/cdrom}} が {{ic|/dev/sr0}} のシンボリックリンクとなっています。ドライブがサポートしているディスクの種類や挿入されているメディアとは関係なく常に名前は {{ic|cdrom}} です。 |
また、[[Udev]] によって {{ic|/dev/cdrom}} が {{ic|/dev/sr0}} のシンボリックリンクとなっています。ドライブがサポートしているディスクの種類や挿入されているメディアとは関係なく常に名前は {{ic|cdrom}} です。 |
||
+ | 例: |
||
− | まとめ: |
||
* {{ic|/dev/sr0}} - 光学ディスクドライブ {{ic|0}}、最初に認識された光学ディスクドライブ。 |
* {{ic|/dev/sr0}} - 光学ディスクドライブ {{ic|0}}、最初に認識された光学ディスクドライブ。 |
||
* {{ic|/dev/sr4}} - 光学ディスクドライブ {{ic|4}}、5番目に認識された光学ディスクドライブ。 |
* {{ic|/dev/sr4}} - 光学ディスクドライブ {{ic|4}}、5番目に認識された光学ディスクドライブ。 |
||
* {{ic|/dev/cdrom}} - {{ic|/dev/sr0}} のシンボリックリンク。 |
* {{ic|/dev/cdrom}} - {{ic|/dev/sr0}} のシンボリックリンク。 |
||
+ | |||
+ | ==== virtio-blk ==== |
||
+ | |||
+ | virtio ブロックデバイス(virtio-blk)インターフェイスに接続されたドライブの名前は {{ic|vd}} で始まります。その後に {{ic|a}} から順に小文字の文字が続きます。1番目に発見されたデバイスは {{ic|vda}}、2番目に発見されたデバイスは {{ic|vdb}} という風に続きます。 |
||
+ | |||
+ | {{Note|virtio-blk と virtio-scsi を混同しないでください。virtio-scsi は SCSI コントローラをエミュレートするので [[#SCSI|SCSI 命名規則]]に従います。}} |
||
+ | |||
+ | 例: |
||
+ | |||
+ | * {{ic|/dev/vda}} - デバイス {{ic|a}}、最初に発見されたデバイス。 |
||
+ | * {{ic|/dev/vde}} - デバイス {{ic|e}}、5番目に発見されたデバイス。 |
||
+ | |||
+ | ==== パーティション ==== |
||
+ | |||
+ | パーティションデバイスの名前はデバイスの名前と、パーティションテーブルで割り当てられたパーティション番号を組み合わせたものです(つまり {{ic|/dev/''drivepartition''}})。デバイス名が数字で終わるドライブは、ドライブの名前とパーティション番号の間に "p" という文字が挟まれます(つまり {{ic|/dev/''drive'''''p'''''partition''}})。 |
||
+ | |||
+ | 例: |
||
+ | |||
+ | * {{ic|/dev/sda1}} - {{ic|/dev/sda}} 上のパーティション {{ic|1}}。 |
||
+ | * {{ic|/dev/nvme2n5p3}} - {{ic|/dev/nvme2n5}} 上のパーティション {{ic|3}}。 |
||
+ | * {{ic|/dev/mmcblk3p4}} - {{ic|/dev/mmcblk3}} 上のパーティション {{ic|4}}。 |
||
+ | * {{ic|/dev/vda1}} - {{ic|/dev/vda}} 上のパーティション {{ic|1}}。 |
||
+ | * {{ic|/dev/loop0p2}} - {{ic|/dev/loop0}} 上のパーティション {{ic|2}}。 |
||
=== ユーティリティ === |
=== ユーティリティ === |
||
77行目: | 95行目: | ||
{{Pkg|util-linux}} パッケージにはブロックデバイスを確認する {{man|8|lsblk}} ユーティリティが含まれています。例: |
{{Pkg|util-linux}} パッケージにはブロックデバイスを確認する {{man|8|lsblk}} ユーティリティが含まれています。例: |
||
− | {{hc|$ lsblk - |
+ | {{hc|$ lsblk --fs| |
NAME FSTYPE LABEL UUID MOUNTPOINT |
NAME FSTYPE LABEL UUID MOUNTPOINT |
||
sda |
sda |
||
110行目: | 128行目: | ||
* [https://doc.kusakata.com/admin-guide/devices.html Linux 予約デバイス — Linux カーネルドキュメント] |
* [https://doc.kusakata.com/admin-guide/devices.html Linux 予約デバイス — Linux カーネルドキュメント] |
||
− | * [ |
+ | * [[Gentoo:Device file]] |
+ | |||
+ | {{TranslationStatus|Device file|2023-03-03|754476}} |
2023年7月4日 (火) 11:30時点における最新版
関連記事
Wikipedia より:
- Unix ライクなオペレーティングシステムにおいて、デバイスファイルまたはスペシャルファイルとは通常のファイルのようにファイルシステム上に配置されるデバイスドライバーのインターフェイスである。
Filesystem Hierarchy Standard に従って Linux ではデバイスファイルは /dev
ディレクトリに存在します。
Arch Linux ではデバイスノードは udev によって管理されています。
目次
ブロックデバイス
ブロックデバイスは特殊ファイルで、バッファを使ってハードウェアデバイスにアクセスできます。仮想ファイルシステムデバイスの詳細な説明と比較は ブロックデバイス を見てください。
ブロックデバイスの名前
デバイスの名前の最初の部分はブロックデバイスを操作するカーネルのドライバーサブシステムを示します。
SCSI
SCSI コマンド (SCSI、SAS、UASP) や ATA 接続 (PATA、SATA)、USB マスストレージ接続のいずれかをサポートするストレージデバイス (ハードディスク、SSD、フラッシュドライブなど) は、Linux カーネルの SCSI ドライバサブシステムによって扱われます。これらのストレージデバイスは、同じ命名規則を使用します。
これらデバイスの名前は sd
から始まります。そして認識順に a
から始まる小文字の英字が後ろに続きます。1番目に発見されたデバイスは sda
、2番目に発見されたデバイスは sdb
という風に続きます。
例:
/dev/sda
- デバイスa
、最初に認識されたデバイス。/dev/sde
- デバイスe
、5番目に認識されたデバイス。
NVMe
NVM Express (NVMe) で接続された SSD などのストレージデバイスの名前は nvme
から始まります。その後ろにデバイスコントローラごとに 0
から始まる数字が付きます。最初に認識された NVMe コントローラは nvme0
、2番目は nvme1
と続きます。そして "n" という文字とコントローラ上のデバイスを意味する 1
から始まる数字が続きます。nvme0n1
は最初に認識されたコントローラの最初に認識されたデバイス。nvme0n2
は最初に認識されたコントローラの2番目のデバイスです。
例:
/dev/nvme0n1
- コントローラ0
のデバイス1
。最初に認識されたコントローラの最初のデバイス。/dev/nvme2n5
- コントローラ2
のデバイス5
。3番目に認識されたコントローラの5番目のデバイス。
MMC
SD カード、MMC カード, eMMC ストレージデバイスはカーネルの mmc
ドライバーによって管理され、デバイスの名前は mmcblk
から始まります。そして後ろに 0
から始まる番号が付きます。例えば mmcblk0
は最初に認識されたデバイス、mmcblk1
は2番目に認識されたデバイスです。
例:
/dev/mmcblk0
- デバイス0
、最初に認識されたデバイス。/dev/mmcblk4
- デバイス4
、5番目に認識されたデバイス。
SCSI 光学ディスクドライブ
SCSI ドライバーサブシステムによってサポートされているインターフェイスを使って接続されている光学ディスクドライブ (ODD) の名前は sr
から始まります。そしてその後ろに 0
から始まる番号が付きます。例えば sr0
は最初に認識されたデバイス、sr1
は2番目に認識されたデバイスとなります。
また、Udev によって /dev/cdrom
が /dev/sr0
のシンボリックリンクとなっています。ドライブがサポートしているディスクの種類や挿入されているメディアとは関係なく常に名前は cdrom
です。
例:
/dev/sr0
- 光学ディスクドライブ0
、最初に認識された光学ディスクドライブ。/dev/sr4
- 光学ディスクドライブ4
、5番目に認識された光学ディスクドライブ。/dev/cdrom
-/dev/sr0
のシンボリックリンク。
virtio-blk
virtio ブロックデバイス(virtio-blk)インターフェイスに接続されたドライブの名前は vd
で始まります。その後に a
から順に小文字の文字が続きます。1番目に発見されたデバイスは vda
、2番目に発見されたデバイスは vdb
という風に続きます。
例:
/dev/vda
- デバイスa
、最初に発見されたデバイス。/dev/vde
- デバイスe
、5番目に発見されたデバイス。
パーティション
パーティションデバイスの名前はデバイスの名前と、パーティションテーブルで割り当てられたパーティション番号を組み合わせたものです(つまり /dev/drivepartition
)。デバイス名が数字で終わるドライブは、ドライブの名前とパーティション番号の間に "p" という文字が挟まれます(つまり /dev/driveppartition
)。
例:
/dev/sda1
-/dev/sda
上のパーティション1
。/dev/nvme2n5p3
-/dev/nvme2n5
上のパーティション3
。/dev/mmcblk3p4
-/dev/mmcblk3
上のパーティション4
。/dev/vda1
-/dev/vda
上のパーティション1
。/dev/loop0p2
-/dev/loop0
上のパーティション2
。
ユーティリティ
lsblk
util-linux パッケージにはブロックデバイスを確認する lsblk(8) ユーティリティが含まれています。例:
$ lsblk --fs
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 vfat C4DA-2C4D /boot ├─sda2 swap 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 [SWAP] └─sda3 ext4 56adc99b-a61e-46af-aab7-a6d07e504652 /
上記の例では、利用可能なデバイスはひとつだけ (sda
) で、デバイスには3つのパーティションが存在しています (sda1
から sda3
)。パーティションはそれぞれ異なるファイルシステムでフォーマットされています。
wipefs
wipefs は指定したデバイスのファイルシステム, RAID, パーティションテーブルのシグネチャ (マジック文字列) を確認・消去することができます。libblkid(3) から認識されないようになります。ファイルシステム自体は消去せず、デバイスの他のデータが消去されることもありません。
詳しくは wipefs(8) を見てください。
例えば、/dev/sdb
デバイスのシグネチャを全て消去してシグネチャのバックアップファイル ~/wipefs-sdb-offset.bak
を作成するには:
# wipefs --all --backup /dev/sdb
疑似デバイス
物理的なデバイスが存在しないデバイスノード。
- /dev/random (random(4) を参照)
- /dev/shm
- /dev/null, /dev/zero (null(4) を参照)
- /dev/full (full(4) を参照)
- /dev/ttyX (X は番号です)