UUID로 파티션을 마운트했는지 확인하는 방법은 무엇입니까? UUID가있는 경우 명령 행을 사용하여 마운트되었는지

드라이브 파티션의 UUID가있는 경우 명령 행을 사용하여 마운트되었는지 여부를 어떻게 알 수 있습니까?



답변

lsblk도움이 될 수 있습니다. UUID와 마운트 지점 만 인쇄 할 수 있으므로 UUID가 지정된 경우 마운트 지점이 비어 있지 않은지 확인하십시오.

uuid=foo
lsblk -o UUID,MOUNTPOINT | awk -v u="$uuid" '$1 == u {print $2}'

그래서:

uuid=foo
mountpoint=$(lsblk -o UUID,MOUNTPOINT | awk -v u="$uuid" '$1 == u {print $2}')
if [[ -n $mountpoint ]]
then
    echo mounted
else
    echo not mounted
fi

때문에 lbslk특정 장치에서 작동 할 수 있습니다, 당신은 또한 할 수 있습니다 :

mountpoint=$(lsblk -o MOUNTPOINT "/dev/disk/by-uuid/$uuid" | awk 'NR==2')

첫 번째 방법을 사용하면 해당 UUID가 현재 연결된 디스크가 아닌 경우 오류가 발생하지 않습니다. 두 번째 방법으로 존재하지 않으면 lsblk오류가 발생 /dev/disk/by-uuid/$uuid합니다.


답변

lsblk -o UUID,SIZE,MOUNTPOINT

UUID 및 마운트 포인트가있는 한 줄만 원할 경우 ($ UUID는 UUID를 나타냄) :

lsblk -o UUID,MOUNTPOINT|grep "$UUID"

마운트 포인트가 마운트 해제되면 비어 있습니다. lsblk -h더 많은 옵션을 시도하십시오 .

awk결과를 인쇄하는 데 사용 합니다. 경우 NF(필드 수)보다 더 그것은이 마운트 포인트를 갖는 것을 의미한다 :

lsblk -o UUID,MOUNTPOINT|grep "$UUID"|awk '{if (NF>1) print $1" is mounted"; else print $1" is unmounted";}'


답변

세부 정보를 원하는 경우 mount

for uuid in /dev/disk/by-uuid/*; do if [[ "$uuid" =~ .*your-UUID-here.* ]]; then echo $(mount | grep "$(readlink -e "$uuid")") ; fi; done

your-UUID-hereUUID로 교체

더 읽기 쉽게 :

 for uuid in /dev/disk/by-uuid/*; do
   if [[ "$uuid" =~ .*your-UUID-here.* ]]
     then echo $(mount | grep "$(readlink -e "$uuid")")
   fi
 done

출력 예 :

/dev/mmcblk1p2 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)

문자열이 null이 아닌지 확인하고 “마운트 된”에코를 만들 수 있습니다.

for uuid in /dev/disk/by-uuid/*; do if [[ "$uuid" =~ .*your-UUID-here.* ]]; then if [[ $(mount | grep "$(readlink -e "$uuid")") ]]; then echo "mounted"; fi; fi; done

그러나 다른 사람들은 더 나은 방법을 제시했습니다. 🙂


답변

데비안은 UDisks2데몬을 사용하는데 , 파일 시스템에 대한 많은 정보를 폴링 udisksctl하고, 출력을 사용 하고 필터링하여 필요한 정보를 빠르고 쉽게 찾을 수 있습니다.

udisksctl dump | python -c 'import sys;lines = [l.strip() for l in sys.stdin if " UUID" in l or " MountPoints:" in l];print "\n".join(lines)'

위에서 보았 듯이 기본적으로 파일 시스템의 UUID와 해당 마운트 지점을 인쇄합니다. 육안 검사를 통해 이제 어떤 UUID가 마운트되고 어떤 UUID가 마운트되지 않았는지 파악할 수 있습니다.

$ udisksctl dump | python -c 'import sys;lines = [l.strip() for l in sys.stdin
> if " UUID" in l or " MountPoints:" in l];print "\n".join(lines)'
MountPoints:        /
UUID:               000b5321-01
MountPoints:
UUID:               bbf23a81-808e-11e4-a445-201a06d7b0e9
MountPoints:
UUID:               bbf23a87-808e-11e4-a445-201a06d7b0e9
MountPoints:
UUID:               bbf23a89-808e-11e4-a445-201a06d7b0e9
MountPoints:
UUID:               bbf23a8f-808e-11e4-a445-201a06d7b0e9
MountPoints:
UUID:               02fe8de2-a408-11e4-8eeb-f0761c8c6df7
MountPoints:        /mnt/HDD
UUID:               53827413-0b7e-4ae6-ae09-1daea529d6a1


답변

내 솔루션

  • 껍질 만 사용하고 procfs 하므로 이상한 명령 출력 형식 문제가 없습니다.
  • 장치 UUID를 (다시) 스캔하지 않지만 커널 캐시를 사용합니다.
  • 따라서 수퍼 유저 권한이 필요하지 않습니다.
  • 정규화 된 경로 이름에 의존하지 않지만 (장치) 파일 ID를 사용합니다.
my_uuid=...
while IFS=' ' read -r dev mnt remainder; do
  case "$dev" in
  /dev/*)
    if [ "$dev" -ef "/dev/disk/by-uuid/$my_uuid" ]; then
      echo "$my_uuid ($dev) mounted at $mnt"
      break
    fi;;
  esac
done < /proc/mounts


답변

이 질문에 대한 훌륭한 답변을 바탕으로 장치 이름으로 작업하는 것이 훨씬 쉽다는 것을 깨달았습니다. UUID에서 장치 이름을 가져 오려면

disk_uuid=foo
disk_devname=$(blkid -U "$disk_uuid")

즉, 출력을 grepping하여 마운트 된 경우 신속하게 추론 할 수 있습니다 df.

df | grep -q "$disk_devname" && echo "Disk mounted" || echo "Disk not mounted"

또는 Muru의 답변 에있는 코드를 사용 하면 드라이브가 장착 된 위치를 알려주는 추가 보너스가 있습니다.

mountpoint=$(lsblk -no MOUNTPOINT "$disk_devname")
if [[ -n  "$mountpoint" ]]; then
   echo "Disk is mounted at $mountpoint"
else
   echo "Disk not mounted"
fi


답변

df명령을 사용하여 마운트 된 파일 시스템 및 해당 마운트 지점을 볼 수 있습니다 . 다음은 내 컴퓨터의 예입니다 … sdb3다른 시스템이 설치된 파티션은 마운트되지 않았으므로 나열되지 않습니다 (파티션은 레이블이 다시 지정되므로 UUID 대신 이름이 표시됩니다).

df
Filesystem                   1K-blocks     Used Available Use% Mounted on
udev                           8100756        0   8100756   0% /dev
tmpfs                          1625296     9952   1615344   1% /run
/dev/sdb4                     41022688  7074348  31834804  19% /
tmpfs                          8126464    19456   8107008   1% /dev/shm
tmpfs                             5120        4      5116   1% /run/lock
tmpfs                          8126464        0   8126464   0% /sys/fs/cgroup
/dev/loop0                       76800    76800         0 100% /snap/ubuntu-core/423
/dev/sdb1                      4186108    12160   4173948   1% /boot/efi
zsc-lxd/containers/uc-1604-1  58620160   516736  58103424   1% /var/lib/lxd/containers/uc-1604-1.zfs
zsc-lxd/containers/uc-1610-1  58637184   533760  58103424   1% /var/lib/lxd/containers/uc-1610-1.zfs
tmpfs                          1625292      124   1625168   1% /run/user/1000
/dev/sdb5                     61796348 10766892  47867344  19% /media/cl/virtual
/dev/sda4                    206293688 13419740 182371804   7% /media/cl/system
/dev/sda3                    206293688 32116600 163674944  17% /media/cl/rescue
/dev/sda2                    206293688  1867604 193923940   1% /media/cl/media
/dev/sda1                    206293688  2539712 193251832   2% /media/cl/data