私のシステムに接続されているOS実行デバイスを除くフルHDDデバイスを一覧表示したいと思います。私は多くのインターネット検索を行い、Linuxのコマンドラインでより多くのコマンドを実行しました。ただし、正しい出力をゲートできません。
1つのコマンドで、OSデバイスを含むすべてのデバイスを提供できます。
fdisk -l 2>/dev/null | grep "Disk \/" | grep -v "\/dev\/md" | awk '{print $2}' | sed -e 's/://g'
出力:
/dev/sda
/dev/sdb
/dev/sdc
「OS HDD」とは、ファイルシステムパーティションを保持するハードドライブを意味します/
。
答え1
df /
ルートファイルシステムが存在するブロックデバイスを表示します。次のように解析できます。
root_device=$(df -P / | awk 'NR!=1 {print $1}')
LVMまたはRAIDなしでPCパーティションを使用する場合、ルートデバイスは/dev/hdZ9
または/dev/sdZ9
whereZ
はディスクを指定する小文字、および9
パーティションを指定する数値です。次のようにディスク部分を抽出できます。
root_disk=${root_device#[0-9]}; root_disk=${root_disk#[0-9]}
ディスクおよび他のブロックデバイスの完全なリストはで見つけることができます/sys/block
。
RAID、LVMなどを使用すると、非常に複雑になる可能性があります。プログラムが何をしても、考えていないハードウェア構成では機能しません。したがって、徹底的なエラーチェックを実装する必要があります。