Saya mencari cara portabel untuk mendapatkan nama perangkat induk blok (misalnya /dev/sda
) mengingat nama perangkat partisi (misalnya /dev/sda1
). Saya tahu saya bisa menghilangkan karakter terakhir, tetapi itu tidak akan berhasil dalam beberapa kasus:
- Pembaca kartu MMC biasanya memiliki nama seperti
/dev/mmcblk0
, sementara partisi mereka memiliki nama seperti/dev/mmcblk0p1
(perhatikan tambahanp
). - opsional: beberapa perangkat blok tidak memiliki tabel partisi sama sekali dan diformat sebagai satu partisi. Dalam hal ini, perangkat partisi dan perangkat blok orang tua adalah sama.
Volume LVM adalah ketel ikan yang sama sekali berbeda. Saya tidak perlu mendukung mereka sekarang, tetapi jika memperhitungkannya membutuhkan sedikit usaha ekstra, saya tidak akan keberatan.
/dev/sda1
dan /dev/mmcblk0p1
khusus untuk Linux. lsblk
relatif baru.
lsblk
juga menggunakan nomor simpul perangkat untuk menemukan yang benar, bukan hanya menggunakan nama. tampaknya solusi paling sederhana untuk Linux dan util-linux sepertinya akan selalu tersedia.
lsblk -dpno pkname $devname
lulus semua tes saya! Mungkin Anda harus menambahkan jawaban.
/dev/sd0c
dalam kasus itu. Apakah jawaban di bawah ini cocok untuk Anda?
/dev/sd0a
tetapi tidak ada/dev/sd0
perangkat (ada/dev/sd0c
...)