나는 당신과 같은 문제가 있습니다 : /dev/sd**
재부팅 후 커널로 이름 바꾸기 :
물론 모든 자동 마운팅은 /etc/fstab
LABEL 또는 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/blkdevice
rc.local 스크립트에서을 사용 하십시오.