it-swarm-ko.tech

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

나의 /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를 볼 수 있습니까?

177
Stefan Lasiewski

/dev/disk/by-uuid에는 각 드라이브의 UUID를 /dev의 항목에 매핑하는 심볼릭 링크가 있습니다 (예 : /dev/sda1).

155
Michael Mrozek

blkid라는 도구가 있습니다 (루트로 사용하거나 Sudo와 함께 사용).

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

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

186
setzamora

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

46
John Rea

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

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

어디 /dev/sdXY는 장치의 이름입니다.

14

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

ls -la /dev/disk/by-uuid

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

df -Th

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

11
MIrra
lsblk -o +uuid,name

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

lsblk --help

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

# blkid
7
Nico Rodsevich

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

이 시도:

Sudo blkid /dev/sd*
2
Kevin

다음 명령 줄을 사용하면 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
1

재부팅 한 후 /dev/sd** 커널로 이름을 바꾸는 것과 같은 문제가 있습니다.

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

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

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

예 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는 그것을한다!

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

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

rc.local 스크립트에서 /dev/shm/blkdevice를 사용하십시오.

이 경우/dev/disk/by-partuuid를 확인해야합니다. 각 드라이브의 PARTUUID를/dev/sdb1 등의 항목에 매핑하는 심볼릭 링크가 있습니다.

0
Sachin Mokashi

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

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

0
man puk tam