/dev/sda
パーティションデバイス名(例/dev/sda1
)を指定して、親ブロックデバイス名(例)を取得するポータブルな方法を探しています。私は最後のキャラクターを落とすことができることを知っていますが、場合によってはうまくいかないでしょう:
- MMCカードリーダーには通常、などの名前が付いていますが
/dev/mmcblk0
、パーティションには/dev/mmcblk0p1
(余分に注意してくださいp
)のような名前が付いています。 - オプション:一部のブロックデバイスにはパーティションテーブルがまったくなく、単一のパーティションとしてフォーマットされています。この場合、パーティションデバイスと親ブロックデバイスは同じです。
LVMボリュームは、まったく異なるケトルです。私は今それらをサポートする必要はありませんが、それらを考慮に入れるのに余分な努力がほとんど必要ないなら、私は気にしません。
@don_crissti、
—
ステファンシャゼラス16
/dev/sda1
そして/dev/mmcblk0p1
とにかくLinux固有です。lsblk
しかし比較的最近です。
lsblk
また、単に名前を使用するのではなく、デバイスノード番号を使用して正しい番号を見つけます。とにかく、Linuxとutil-linuxの最も簡単なソリューションは常に利用できるようです。
@don_crissti
—
ドミトリーグリゴリエフ
lsblk -dpno pkname $devname
はすべてのテストに合格しました!おそらく答えを追加する必要があります。
@thrigええ、そうだとすれば、スクリプトが必ず返ってくると思い
—
ドミトリーグリゴリエフ
/dev/sd0c
ます。以下の答えはあなたに合っていますか?
/dev/sd0a
いますが、/dev/sd0
デバイスがありません(/dev/sd0c
... があります)