Linux : 시스템에서 사용 가능한 모든 디스크에 대한 모든 UUID를 보려면 어떻게해야합니까?


153

/etc/fstab내용은 다음과 같습니다.

# / was on /dev/sda1 during installation
UUID=77d8da74-a690-481a-86d5-9beab5a8e842 /               ext4    errors=remount-ro 0       1

이 시스템에는 여러 개의 다른 디스크가 있으며 모든 디스크가 올바른 위치에 마운트되지는 않습니다 (예를 들어, / dev / sda1 및 / dev / sdb1이 때때로 반전 됨).

시스템의 모든 디스크에 대한 UUID를 어떻게 볼 수 있습니까? 이 시스템에서 세 번째 디스크의 UUID를 볼 수 있습니까?


@ setzamora 답변이 더 좋습니다. 허용 된 답변을 변경하십시오.
nslntmnx

답변:


134

에서 /dev/disk/by-uuid의 해당 항목에 각 드라이브의 UUID를 매핑 심볼릭 링크가있다 /dev(예를 들어 /dev/sda1)


3
LVM 파티션 일 때는 읽을 수 없습니다.
Grzegorz Wierzowiecki

1
LVM은 이미 구조에 긴 UUID와 유사한 식별자를 사용하고 있습니다 (다르지만 다르게 표시됨). LVM에서 파일 시스템 UUID를 사용하는 유일한 이유는 LVM이 이미 LV를 사람에게 친숙한 이름으로 매핑하기 때문에 일종의 자동화를위한 통합 인터페이스 일 것이라고 생각합니다.
telcoM

2
ls -lha /dev/disk/by-uuid
deFreitas

157

blkid(루트로 또는로 사용) 이라는 도구가 있습니다 sudo.

# blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"

자세한 내용은 이 링크 를 확인하십시오


12
사소한 코멘트 : 그룹의 멤버 disk가되는 것만으로도 충분합니다 blkid. 완전한 수퍼 유저 권한이 필요하지 않습니다.
arielf

10
스크립트에서 구문 분석하는 경우와 같이 UUID 원하는 경우 할 수 있습니다 blkid /dev/sda1 -s UUID -o value.
잭 오코너

3
여기 빠른 설명 : 내 배포판 (Debian 8)에서 UUID와 "PARTUUID"가 생성되어 다소 혼란 스럽습니다. 하나의 값만 제공하는 {lsblk} 명령을 사용했습니다.
takumar

2
blkid /dev/sd*모든 드라이브를 나열 하는 것을 선호하지만이 방법은 많은 시간을 절약 해줍니다. 일반적으로 필요한 정보를 찾기에 충분할 정도로 정보가 충분합니다. :)
ZaLiTHkA

2
GPT 파티션 디스크의 PARTUUID는 파티션의 GPT UUID이며 파일 시스템이 아닙니다. 파일 시스템이 아직 생성되지 않은 경우 유용 할 수 있습니다. MBR 파티션 디스크에서 PARTUUID는 실제 UUID가 아니라 단순히 MBR + 대시 + 파티션 번호의 Windows 디스크 서명입니다.
telcoM

31

사용하는 가장 좋은 명령은 lsblk -f입니다. 동일한 드라이브에서 LVM, crypto_LUKS 또는 여러 볼륨 그룹을 사용하는 경우 모든 장치 및 파티션, 마운트 방법 (있는 경우) 및 장치의 트리 구조가 나열됩니다.


10

이것은 나를 위해 작동합니다 :

ls -la /dev/disk/by-uuid

파티션이 어떤 유형인지 확인하려면 다음을 사용하십시오.

df -Th

ext3 또는 ext2가 있으면 표시됩니다. 포맷 된 ext2 파티션이 있었기 때문에 오늘 도움이되었고 마운트가 실패하는 ext3이라고 생각했습니다.


당신은 항상 시도 할 수 mount -t auto /dev/sda1 /media/sda1있습니다.
ott--

8

UUID특정 디스크 장치 만 가져 오려면 (예 : 스크립트에서 사용) 다음을 사용할 수 있습니다.

sudo blkid -s UUID -o value /dev/sdXY

여기서 /dev/sdXY장치 이름입니다.


6
lsblk -o +uuid,name

-o( --output)에 추가 할 수있는 모든 출력을 볼 수 있습니다.

lsblk --help

또한 이것은 일을 할 것입니다

# blkid

name기본적으로 인쇄 되지 않습니까?
don_crissti

그것은. 교육 목적으로 만 추가했습니다 (원하는 필드를 구분하기 위해 쉼표 추가)
Nico Rodsevich

2

이전 답변은 여러 장치 또는 동일한 UUID가있는 장치에서는 작동하지 않습니다.

이 시도:

sudo blkid /dev/sd*

1
정말 ? 가장 투표 된 답변이 효과가 없습니까?
don_crissti

UUID (Universally Unique Identifier)는 항상 고유해야합니다. UUID의 전체 목적은 독특하고 보편적 인 것입니다. 그렇지 않으면 문제가있는 것입니다. 적어도 네트워크 장치에 대해 복제 된 VM에서 중복 된 UUID를 보았습니다.
Stefan Lasiewski

5
dd명령 으로 파티션을 복제 하면 사본에 동일한 uuid가 있고 예입니다. 이것이 문제입니다. 다른 답변은 여기에 표시되지 않습니다.
케빈

1

다음 명령 줄을 사용하면 UUID와 파티션에 대한 매핑을 볼 수 있습니다.

ls /dev/disk/by-uuid -lt

lrwxrwxrwx 1 root root 10 Sep  1 18:51 57eacf4e-1940-436e-b945-85f8d4833aa5 -> ../../sda2
lrwxrwxrwx 1 root root 10 Sep  1 18:51 656f4cae-8527-43a0-a80f-00ac82818744 -> ../../sda1
lrwxrwxrwx 1 root root  9 Sep  1 18:51 d627595d-4060-440e-8380-a1fe9f3f2a81 -> ../../md0
lrwxrwxrwx 1 root root 10 Sep  1 18:51 0dfd6dfe-1852-460d-852c-676a5b9035ed -> ../../sda4
lrwxrwxrwx 1 root root 10 Sep  1 18:51 b1ddf850-8f81-429f-a653-38ae4a4ebb6f -> ../../sda3
lrwxrwxrwx 1 root root  9 Sep  1 18:51 b4b729f7-5699-411c-8f5a-424bbc7c89fc -> ../../sdb

왜 sda의 uuid를 볼 수
있습니까

파티션 당 파일 시스템에 대해 하나의 UUID가 있습니다. sda에는 4 개의 파티션이 있으므로 4 개의 UUID가 있습니다. wiki.debian.org/Part-UUID
Nicolas Guérinet

1

나는 당신과 같은 문제가 있습니다 : /dev/sd**재부팅 후 커널로 이름 바꾸기 :

물론 모든 자동 마운팅은 /etc/fstabLABEL 또는 UUID에 의해 참조되므로 기본적으로 아무런 문제가 없습니다. 그리고 위의 모든 명령, blkid 또는 lsblk는 이러한 종류의 정보를 제공합니다.

그러나 현재 부팅 된 시스템 관점에서 RAW 모드에서 파티션을 사용할 때 문제가 시작됩니다. 예를 들어 다음 중 하나는 파티션을 원시 장치로 사용하여 VirtualBox의 가상 디스크를 만드는 것입니다. 이 파티션에 대한 참조는 다음과 같습니다. /dev/sdf3) 또는 파티션을 원시 장치로 사용하여 iSCSI 용 LUN을 만듭니다 (이 파티션에 대한 참조는 다음과 같습니다 /dev/sdc6)

이제 부팅 할 때 (예 : rc.local) 신뢰할 수있는 방식으로 /dev/sdXX전용 RAW 파티션 의 장치 를 찾고 일부 파일을 조정해야합니다.

실시 예 1

이 원시 디스크에 대한 VirtualBox 디스크 * .vmk 설명은 다음과 같습니다.

\# Extent description
RW 488397167 FLAT "/dev/sdXX" 0

그런 다음 VirtualBox 서비스를 다시 시작하십시오.

실시 예 2

tgtd 구성에서 target : target0이 /dev/sdd6빌드시 연관되었습니다 . 재부팅 후 동일한 파티션의 이름 /deb/sdc6 이 변경됩니다. 이것은 이동식 디스크, USB 또는 eSATA에서 발생합니다! 새 장치를 자동으로 찾는 방법은 무엇입니까? 다시 /etc/rc.d/rc.local에서

따라서이 경우 새로운 장치 이름을 찾으려면 신뢰할 수있는 방법이 필요합니다. GPT 파티션은 GPT 테이블에 작성된 모든 GPT 파티션에 고유 한 GUID를 제공합니다.

gdisk는이 정보를 나열 모드로 제공하지 않지만 대화식 모드에서만 i 명령을 제공합니다. 다행히도, blkid는 그것을한다!

따라서 /dev/sdXX파티션 생성시 알아 낸 GUID와 관련된 모든 디스크 (장치)를 보려면 셸 스크립트를 작성해야합니다 .

search_device_by_partUUID.sh와 같은 것 :

\#!/bin/bash

PART_UUID=$1
if [ "$PART_UUID" = "" ]
then
    echo "Syntax: $0 <a valid partition UUID>"
    exit 3
fi
lsblk | grep '^sd' | awk '{print $1}' | while read DISK_DEVICE
do 
    INFO=`blkid /dev/${DISK_DEVICE}* | grep "PARTUUID=\"$PART_UUID\"" `
    if [ "$INFO" != "" ]
    then
        echo INFO : "$INFO"
        BLK_DEVICE=`echo "$INFO" | awk '{print $1}'`
        echo $BLK_DEVICE > /dev/shm/blkdevice
        echo -n "BLK_DEVICE : " ; cat /dev/shm/blkdevice
    fi
done

그런 다음 /dev/shm/blkdevicerc.local 스크립트에서을 사용 하십시오.


0

하드 디스크 파티션의 UUID를 보려면 Linux CD로 시스템을 부팅하고 컴퓨터 마운트로 이동하여보고 싶은 파티션을 클릭하십시오. Linux 파티션의 UUID 번호가 표시됩니다.

Linux CD 부팅 후 Linux 디스크 유틸리티를 실행하여 디스크 uuid를 볼 수도 있습니다.


"내 컴퓨터 마운트"는 무엇입니까? "Linux 디스크 유틸리티"란 무엇입니까? gnome-disk-utility aka Disks?
Xen2050
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.