lsblk + 디스크만 캡처

lsblk + 디스크만 캡처

디스크를 캡처하고 싶습니다.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

관련 정보