나의 /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를 볼 수 있습니까?
/dev/disk/by-uuid
에는 각 드라이브의 UUID를 /dev
의 항목에 매핑하는 심볼릭 링크가 있습니다 (예 : /dev/sda1
).
blkid
라는 도구가 있습니다 (루트로 사용하거나 Sudo
와 함께 사용).
# blkid /dev/sda1
/dev/sda1: LABEL="/" UUID="ee7cf0a0-1922-401b-a1ae-6ec9261484c0" SEC_TYPE="ext2" TYPE="ext3"
자세한 내용은 이 링크 를 확인하십시오.
사용하는 가장 좋은 명령은 lsblk -f
. 동일한 드라이브에서 LVM, crypto_LUKS 또는 여러 볼륨 그룹을 사용하는 경우 모든 장치 및 파티션, 마운트 방법 (있는 경우) 및 장치의 트리 구조가 나열됩니다.
특정 디스크 장치 (예 : 스크립트에서 사용)의 UUID
만 가져 오려면 다음을 사용할 수 있습니다.
Sudo blkid -s UUID -o value /dev/sdXY
어디 /dev/sdXY
는 장치의 이름입니다.
이것은 나를 위해 작동합니다 :
ls -la /dev/disk/by-uuid
파티션이 어떤 유형인지 확인하려면 다음을 사용하십시오.
df -Th
ext3 또는 ext2가 있으면 표시됩니다. 포맷 된 ext2 파티션이 있었기 때문에 오늘 도움이되었고 마운트가 실패하는 ext3이라고 생각했습니다.
lsblk -o +uuid,name
-o
(--output
)에 추가 할 수있는 모든 출력을 볼 수 있습니다.
lsblk --help
또한 이것은 일을 할 것입니다
# blkid
이전 답변은 여러 장치 또는 동일한 UUID가있는 장치에서는 작동하지 않습니다.
이 시도:
Sudo blkid /dev/sd*
다음 명령 줄을 사용하면 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
재부팅 한 후 /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 등의 항목에 매핑하는 심볼릭 링크가 있습니다.
하드 디스크 파티션의 UUID를 보려면 Linux CD로 시스템을 부팅하고 컴퓨터 마운트로 이동하여보고 싶은 파티션을 클릭하십시오. Linux 파티션의 UUID 번호가 표시됩니다.
Linux CD 부팅 후 Linux 디스크 유틸리티를 실행하여 디스크 uuid를 볼 수도 있습니다.