\r\n\r\n
Linuxコンピュータにある、あるいは接続されているデバイスを正確に調べることができます。ここでは、接続されているデバイスをリストアップするための12のコマンドを紹介します。
猫の皮を剥ぐ方法がいくらあっても、Linuxコンピュータに接続されている、あるいはインストールされているデバイスをリストアップする方法はもっとたくさんあるに違いない。今回はそのうちの12本をご紹介します。それが全部じゃないんです!
必然的に、これらのコマンドから得られる情報には重複する部分が多いので、わざわざ説明する必要はないでしょう。
まあ、ひとつには、内容やディテールのバリエーションがまったく違うので、ある方法を好む人がいることです。あるコマンドの出力形式は、特定のユースケースに特に適している場合があります。別のコマンドのフォーマットは、grepや他のさらなる処理によるパイプライン化に適しているかもしれません。
ただし、これは主に記事をなるべく一般的なものにするためです。読者がどのコマンドに興味を持ち、どのコマンドを使うかを決めるよりも、利用可能なコマンドのサンプルを広く提供し、読者がどれを使い、どれをそのまま使うかを選択できるようにした方がよいでしょう。
これらのコマンドのほとんどはLinuxディストリビューションにデフォルトで含まれています。Ubuntu, Fedora, Manjaroは、Debian, Red Hat, Archファミリーの主要ブランチディストリビューションの代表サンプルとして使用されています。
3つのディストリビューションとも、lsdevコマンドを提供するprocinfoのインストールが必要です。また、lsscsiコマンドも3つのサーバーにインストールされている必要があります。
lsdevとlsscsiをインストールするには、次のコマンドを使用します。
ウバントゥ
sudo apt-get install procinf sudo apt-get install lsscsiツイードのキャップ。
sudo dnf install procinfo sudo dnf install lsscsiマンガロール
sudo pacman -Syu procinfo sudo pacman -Syu lsscsi意外なことに、Manjaroはそのシンプルさで知られているディストリビューションで、これから見るほとんどのコマンドがプリロードされています。
UbuntuとFedoraはhwinfoのインストールが必要で、Fedoraはlshwとhdparmのインストールも必要です。
ウバントゥ
sudo apt-get install hwinfoツイードのキャップ。
sudo dnf install hwinfo sudo dnf install lshw sudo dnf install hdparmmountコマンドは、ファイルシステムをマウントするために使用されます。
しかし、パラメータなしでコマンドを発行すると、マウントされたすべてのファイルシステムとそのデバイスが一覧表示されます。だから、それを使って、それらのデバイスを発見することができるのです。
mount特に、ソフトウェアのインストールにsnap方式を使用した場合、mountからの出力が予想以上に長くなることがあります。snapを使うたびに、mountでリストアップされる別の擬似ファイルシステムを取得します。もちろん、物理的なデバイスが関連付けられているわけではないので、実像を覆い隠しているだけなのですが。
マニフェストの中にハードディスクに配置された実ファイルシステムがあれば、それをgrepで切り分けることができる。
ハードディスクは、通常「sd」の後にアルファベットを付けた名前で識別され、最初のドライブは「a」、2番目のドライブは「b」、といった具合になります。.パーティションの識別は、1番目のパーティションに1、2番目のパーティションに2......と追加していきます。
ハードディスクは/devにある特殊なデバイスファイル(ブロックファイルという)で接続され、ファイルシステムツリーのどこかにマウントされるわけです。
このコマンドは、grepを使用して、"sd "で始まるドライブの詳細をフィルタリングします。
mount | grep /dev/sd出力されるのは、この論文の研究に使用したマシンのハードディスク1台分です。
mountからの応答は、drive/dev/sdaが/(ファイルシステムツリーのルート)にマウントされ、ext4ファイルシステムを持っていることを伝えています。「rw "はリード/ライトモードでマウントされていることを意味します。
Relatimeは、ファイルのタイムスタンプ更新ルーチンで使用されるスキームです。ファイルの修正時刻(mtime)または変更時刻(ctime)が最後のアクセス時刻より新しいか、アクセス時刻(atime)がシステムで定義された閾値より早い場合を除き、アクセス時刻はディスクに書き込まれません。これにより、ファイルへの頻繁なアクセスに必要なディスク更新の回数を大幅に削減することができます。
"errors=remount ro" は、十分に深刻なエラーが発生した場合に、 ファイルシステムを読み取り専用モードで再マウントすることを意味します。
マウントの出力をスクロールして、デバイスにロードされたファイルシステムをより簡単に発見できるように、マウントの出力はより少ないパイプを通過することができます。
mount | lessdev特殊ファイルに添付されたファイルシステムが表示されるまで出力をスクロールしてください。
l**lk コマンドは、ブロック・デバイスとそのロード・ポイントなどの情報を一覧表示します。
l**lk出力表示です。
出力の混乱をなくし、周期的なデバイスを削除するには、-e (exclude) オプションを使用し、無視したいデバイスの種類数を指定することができます。
このコマンドにより、l**lkはloop(7)とcd room(11)のデバイスを無視するようになります。
l**lk -e 7,11この結果、ハードディスクsdaだけが含まれるようになりました。
dfコマンドは、ドライブの容量、使用領域、空き領域を報告します。
コマンドラインに「df」と入力し、Enterキーを押します。
df出力表を見ると
出力から不要なエントリを削除するには、-x (exclude) オプションを使用します。このコマンドは、周期的なデバイスエントリがリストアップされるのを防止します。
df -x squashfsコンパクトに出力されるため、重要な情報の解析が容易になります。
fdiskコマンドは、ディスクのパーティションテーブルを操作するためのツールですが、情報を表示することも可能です。コンピュータ内のデバイスを調査する際に、これを活用することができます。
ここでは、-l(リスト)オプションを使って、パーティションテーブルを一覧表示することにします。出力が長くなることがあるので、fdiskから少ないパイプで出力することにします。fdiskはディスクパーティションテーブルを変更する可能性があるため、sudoを使用する必要があります。
sudo fdisk -l少ないコンテンツをスクロールすることで、ハードウェアデバイスを特定することができます。これはハードディスクsdaのエントリです。
ハードウェアデバイスの1つの身元がわかったので、fdiskにその項目を個別に報告させることができます。
sudo fdisk -l /dev/sda長さがかなり短くなったアウトプットを得ることができるのです。
procにある擬似ファイルを見ることで、システムに関する情報を得ることができるのです。表示されるファイルは /proc/mounts で、マウントされたファイルシステムに関する情報が表示されます。catよりも強力なツールを使って、ファイルを表示することにします。
cat /proc/mountsこのリストには、ファイルシステムツリー内のマウントポイントにデバイスを接続するために使用される、/devにある特殊なデバイスファイルが表示されます。
grepを使って、/dev/sdを含むエントリーを見つけることで、リストを絞り込むことができます。 これにより、物理ドライブを除外することができます。
cat /proc/mounts | grep /dev/sdこれによって、より管理しやすいレポートを得ることができます。
特殊なデバイスファイルである /dev/sd や /dev/sr を持つデバイスを grep で検索することで、もう少し包括的に検索することができます。このマシンのハードディスクやCDも含まれることになります。
cat /proc/partiti*** | grep s[rd]出力には、2つのデバイスと1つのパーティションが含まれるようになりました。
lspci コマンドは、コンピューター内のすべての PCI デバイスを一覧表示します。
lspci提供する情報です。
lsu**コマンドを実行すると、コンピュータのUSBポートに接続されているデバイスと、コンピュータに内蔵されているUSB対応デバイスが一覧表示されます。
lsu**このテストPCには、USBデバイス5としてキヤノンのスキャナーを接続し、USBデバイス4として外付けUSBドライブを接続しています。デバイス 3 と 1 は内部 USB インターフェースハンドラです。
v (verbose) オプションを使用するとさらに詳細なリストを、-vv を使用するとさらに詳細なバージョンを受信することができます。
lsdevコマンドは、インストールされているすべてのデバイスに関する情報を表示します。
このコマンドは大量の出力を生成するため、少ないパイプで実装することになります。
lsdev | less出力には、多くのハードウェアデバイスがリストアップされています。
lshwコマンドは、コンピューターに接続されているデバイスの一覧を表示します。これも出力量の多いコマンドです。テスト用コンピューターでは、260行以上の情報が作成されました。もう1回だけ着よう。
lshwをフルに活用するにはsudoを併用する必要があり、そうしないとすべてのデバイスにアクセスできないので注意してください。
sudo lshw | less以下は、SCSIインターフェース搭載のCD-ROMの項目です。ご覧のように、各デバイスについて提供される情報は非常に詳細です。lshw は /proc にある様々なファイルから情報のほとんどを読み取ります。
より短く、より詳細な出力を得たい場合は、--shortオプションを使用します。
これで想像がつくと思いますが、lsscsiコマンドはコンピュータに接続されているSCSIデバイスの一覧を表示します。
lsscsi以下は、このテスト機に接続されているSCSIデバイスです。
dmidecodeコマンドは、Desktop Management Interface(DMI)テーブルをデコードし、コンピューターに接続されているハードウェアとコンピューター内部に関連する情報を抽出します。
DMIは、SMBIOS(System Management Basic Input/Output System)と呼ばれることもあるが、実際には2つの異なる規格である。
ここでもパイプを少なくする必要があります。
dmidecode | lessdmidecodeコマンドは、40種類以上のハードウェアをレポートすることができます。
hwinfoコマンドは、この中で最も長いコマンドです。より少ない配管を通せというのは、今回はオプションではありません。テスト用コンピューターでは、5850行の出力が得られました
shortオプションを付ければ、簡単に始めることができます。
hwinfo --short本当に細かいところまで見る必要がある場合は、これを繰り返して --short オプションを省略します。
そこで、コンピュータの中にある、あるいはコンピュータに接続されているデバイスを調査する方法を12個ご紹介します。
このリストには、あなたが必要とするハードウェアを見つけるための方法があります。