디스크를 캡처하고 싶습니다.LSBLK
여기에 표시된 것처럼 fd0은 실제로 사용할 수 있는 디스크가 아닌데도 나타납니다.
이 경우 우리는 할 수 있습니다lsblk | grep 디스크 | grep -v fd0
하지만 필터링이 필요한 다른 장치를 놓쳤을 수도 있습니다.grep -v
어떤 다른 디스크 장치가 있을 수 있나요?lsblk | grep 디스크그리고 실제 디스크가 아닌가요?
lsblk | grep disk
fd0 2:0 1 4K 0 disk
sda 8:0 0 100G 0 disk
sdb 8:16 0 2G 0 disk /Kol
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sdf 8:80 0 2G 0 disk
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 150G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 149.5G 0 part
├─vg00-yv_root 253:0 0 19.6G 0 lvm /
├─vg00-yv_swap 253:1 0 15.6G 0 lvm [SWAP]
└─vg00-yv_var 253:2 0 100G 0 lvm /var
sdb 8:16 0 2G 0 disk /Kol
sdc 8:32 0 2G 0 disk
sdd 8:48 0 2G 0 disk
sde 8:64 0 2G 0 disk
sdf 8:80 0 2G 0 disk
sr0 11:0 1 1024M 0 rom
답변1
장치 메이저 번호로 디스크를 SCSI로 식별하기만 하고 8
장치 파티션은 필요하지 않은 경우 문자열 "disk" 대신 장치 메이저 번호를 검색할 수 있습니다.
lsblk -d | awk '/ 8:/'
-d
(또는 ) 옵션은 --no-deps
장치 파티션이 포함되지 않음을 나타냅니다.
최신 Linux 시스템의 경우 더 간단합니다.
lsblk -I 8 -d
사용자 Nick이 지적했듯이 그것으로 충분합니다.
답변2
다른 출력 없이 모든 디스크의 장치 이름을 얻고 싶습니다. 이것을 사용하여 끝났습니다.
lsblk -nd --output NAME
그러면 다음과 유사한 결과가 생성됩니다.
sda
sdb
-d
디스크만 출력하고,
-n
헤더 라인을 제거하고, --output NAME
장치 이름만 나열되는지 확인합니다.
답변3
나는 코멘트를 달기에 충분한 평판을 가지고 있지 않으므로 이것이 나의 코멘트입니다.
sudo lsblk -I 8,259 -d
nvme
목록에 장치를 포함시키려는 경우 .
답변4
나에게 맞는 솔루션이 없었기 때문에 방금 다시 사용했습니다 jq
...
$ lsblk -d -J | jq '.blockdevices[] | select(.type == "disk" and .rm == false and .ro == false) | .name +" "+.size' -r
vda 70G
vdb 20G