GNU/Linux >> Linux の 問題 >  >> Linux

特定のパーティションを含むディスク名を取得する方法

/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 が言ったように、次の方法で親を直接取得できます:

lsblk -no pkname /dev/sda1

Linux
  1. LinuxソフトウェアRAIDで故障したハードディスクを交換する方法

  2. / dev/randomを使用してLinuxでランダムパスワードを生成する方法

  3. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  1. このディスクをマウントする方法は?

  2. /dev/dm-Z デバイスから /dev/sdX および /dev/mapper/mpathY デバイスをマップする方法

  3. ディスク/パーティションがOracle ASMによって使用されているか、Oracle ASMによって使用されていたか、またはOracle ASMによってまったく使用されていないかどうかを確認する方法

  1. /usr と /var を別のパーティションまたはディスクに移動する方法

  2. /dev/sda と /dev/sdb をどのように交換しますか?

  3. echo または print /dev/stdin /dev/stdout /dev/stderr