2台のハードドライブがあるとしましょう。
内部(GNU / Linux(Debian)起動);
外部(USB)。
fdisk -l
/dev/sda
どちらも検出しますが、どちらが何であるかはわかりません/dev/sdb
。lsusb
は外部USBデバイスが接続されていることを示しますが、または/dev/sda
にマッピングされているかどうかはわかりません/dev/sdb
。
システムからこの情報を取得するにはどうすればよいですか?
答え1
ls -l /sys/class/block/sd?
これらのsd?
エントリは、ディスクがコンピュータに接続される方法を示すシンボリックリンクです。/usb
内部にはUSBディスクがあります。
udevadm info -a -n sda
カーネルが直接取得できるすべての識別情報を表示しますsda
。たとえば、IntelコントローラのSATAディスクの場合から、SUBSYSTEMS=="scsi"
USBディスクの場合から直接接続する方法について詳しく学びます。SUBSYSTEMS=="pci", DRIVERS=="ahci"
SUBSYSTEMS=="scsi"
SUBSYSTEMS=="usb", DRIVERS=="usb-storage"
ls -l /dev/disk/by-*
では、/dev/disk/by-*
ハードウェア接続(by-path
)、グローバルに一意の識別子(by-uuid
)、手動で選択したラベル(by-label
)、または製造元ID()に基づいてby-id
ディスクを見つけることができます。
答え2
私のDebianコンピュータ(現在Lubuntu)では、私はよく使用します。testdisk -l
(読む:「小さいL減算」)この目的のために。すべてのディストリビューションtestdisk
にプレインストールされているわけではありませんが、よく知られているリカバリツールです。ほとんどのディストリビューションにはこのツールが必要です。
私がしばらく前に学んだもう一つの素晴らしいツールは次のとおりですlsblk
。
$ lsblk -d -io KNAME,TYPE,SIZE,MODEL
またはHDDのみを表示したい場合:
$ lsblk -d -io KNAME,TYPE,SIZE,MODEL | grep 'sd\w'
grep
(\ wは必須ではありませんが、デフォルト設定でエイリアスされたディストリビューションの醜い「半色」出力を防ぎますgrep --color=auto
。)
また、この小さな目的のために合理化することを決定した(実際には非常に複雑な)スクリプトを使用することもできます。
答え3
最善の答えはわかりませんが、以下はいくつかのアイデアです。
/sys/class/block/sdX/device/model
デバイスが報告したメーカー/モデル情報を確認できます。たとえば、
cat /sys/class/block/sda/device/model
SAMSUNG HD161GJ
これだけで、どのデバイスが外部デバイスであり、どのデバイスが内部デバイスであるかを識別するのに十分です。dmesg
USBデバイスの場合は、以下を含む出力を見ることができます。
[ 2073.412999] scsi12 : usb-storage 2-1.8:1.0
これは、SCSIバス12をUSBストレージバスとして識別する。その後、バス12でSCSIデバイスを見つけることができる。
# dmesg | grep scsi12
[ 2074.488651] sd 12:0:0:0: Attached scsi generic sg6 type 0
[ 2076.592154] sd 12:0:0:0: [sdf] 30481152 512-byte logical blocks: (15.6 GB/14.5 GiB)
[ 2076.592639] sd 12:0:0:0: [sdf] Write Protect is off
[ 2076.592645] sd 12:0:0:0: [sdf] Mode Sense: 23 00 00 00
[ 2076.593142] sd 12:0:0:0: [sdf] No Caching mode page present
[ 2076.593147] sd 12:0:0:0: [sdf] Assuming drive cache: write through
[ 2076.596270] sd 12:0:0:0: [sdf] No Caching mode page present
[ 2076.596276] sd 12:0:0:0: [sdf] Assuming drive cache: write through
[ 2076.619078] sd 12:0:0:0: [sdf] No Caching mode page present
[ 2076.619084] sd 12:0:0:0: [sdf] Assuming drive cache: write through
[ 2076.619088] sd 12:0:0:0: [sdf] Attached SCSI removable disk
答え4
私はGilesの答えが最高だと思いますが、完全性のためにこの答えを追加しています。
hdparm -i /dev/sda
これにより、コントローラドライバがドライブから取得した基本情報(モデルとシリアル番号を含む)がいくつか表示されます。/dev
デバイスへの読み取りアクセス権(グループ権限など)がある場合、このコマンドにはルートは必要ありません。
hdparm -I /dev/sda
これにより、ドライブに関する多くの高度な情報(モデル番号、シリアル番号、可能なすべての情報)が表示されます。このコマンドにはroot権限が必要です。