Seninle aynı sorunu yaşıyorum: yeniden /dev/sd**
başlatmanın ardından çekirdeği tarafından yeniden adlandırma :
Tabii ki tüm otomatik /etc/fstab
montajım LABEL veya UUID tarafından gösteriliyor, dolayısıyla temelde bunun için bir sorun yok. Ve yukarıdaki tüm komutlar blkid veya lsblk, bu tür bilgileri verir.
Ancak sorun benim durumumda olduğu gibi, bölümü RAW modunda kullanırken, şu anda önyüklemeli sistem bakış açısında kullanıyorsanız: örneğin ya: bölüm, VirtualBox için sanal bir disk oluşturmak için ham aygıt olarak kullanılır (yani bu bölüme yapılan referans şuna benzer /dev/sdf3
:) veya bölüm ham aygıt olarak kullanılır, iSCSI için bir LUN yapmak için kullanılır (bu bölüme yapılan referans şuna benzer /dev/sdc6
)
Öyleyse şimdi açılışta, örneğin rc.local'da, güvenilir bir şekilde, /dev/sdXX
tahsis edilmiş RAW bölümünüzün aygıtı nedir ve bazı dosyaları uyarlamanız gerekir:
ÖRNEK 1
Bu sanal diskin VirtualBox diski * .vmk açıklaması, şöyle bir bölümde:
\# Extent description
RW 488397167 FLAT "/dev/sdXX" 0
ve sonra VirtualBox hizmetini yeniden başlatın
ÖRNEK 2
tgtd konfigürasyonunda, bir hedef: target0 /dev/sdd6
derleme zamanında ilişkilendirildi . Yeniden başlattıktan sonra yeniden adlandırılan aynı bölümü alırsınız. /deb/sdc6
Bu çıkarılabilir disk, USB veya eSATA! Peki yeni cihaz otomatik olarak nasıl bulunur? Yine /etc/rc.d/rc.local içinde
Dolayısıyla bu durumda, yeni cihaz adının ne olduğunu bulmak için güvenilir bir yönteme ihtiyacımız var. GPT bölümü, GPT tablosunda yazılı olan herhangi bir GPT bölümü için benzersiz bir GUID sunar.
gdisk bu bilgiyi listeleme modunda sağlamaz, fakat sadece interaktif modda: i command. Neyse ki, blkid yapar!
Bu nedenle /dev/sdXX
, bölüm oluşturma sırasında fark edilen GUID ile ilişkili olan tüm disklerinize bakmak için bir kabuk betiği yazmanız gerekir .
Search_device_by_partUUID.sh gibi bir şey:
\#!/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
ve sonra /dev/shm/blkdevice
, rc.local komut dosyanızda kullanın.