たとえば、パーティションがわかっている場合、そのパーティションを含むディスクの名前をどのように /dev/sda1
知ることができますか(この場合)。/dev/sda
- 出力はディスクパスでなければなりません(例:
/dev/sda
。 - 他のディスクタイプで動作するために必要なので、文字列操作は必要ありません。
ベストアンサー1
/sys
ブロックデバイスで指定されたパーティション名を観察できます。たとえば、/dev/sda1:
$ ls -l /sys/class/block/sda1
lrwxrwxrwx 1 root root /sys/class/block/sda1 -> \
../../devices/pci0000:00/.../ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1
/dev/sda1
引数を取得して印刷するスクリプトは/dev/sda
次のとおりです。
part=$1
part=${part#/dev/}
disk=$(readlink /sys/class/block/$part)
disk=${disk%/*}
disk=/dev/${disk##*/}
echo $disk
試してみるlvmなどはありませんが、同様のパスがある可能性があります。
さらにlsblk
:
$ lsblk -as /dev/sde1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sde1 8:65 1 7.4G 0 part
`-sde 8:64 1 7.4G 0 disk
@don_crisstiが言ったように、-o pkname
この名前の列だけを-n
インポートし、ヘッダーを削除し、-d
ホルダーデバイスまたはスレーブデバイスを含まないことで親アイテムを直接インポートできます。
lsblk -ndo pkname /dev/sda1