मुझे आपके समान ही समस्या है: /dev/sd**
रिबूट के बाद कर्नेल द्वारा नाम बदलना :
बेशक मेरे सभी ऑटोमैटिक माउंटिंग को /etc/fstab
LABEL या UUID द्वारा संदर्भित किया जाता है, इसलिए मूल रूप से इसके लिए कोई समस्या नहीं है। और ऊपर के सभी कमांड ब्लकि या lsblk इस तरह की जानकारी देते हैं।
लेकिन मुसीबत तब शुरू होती है जब मेरे मामले में, जब आप रॉ मोड में विभाजन का उपयोग कर रहे होते हैं, वर्तमान में बूट किए गए सिस्टम पॉइंट-ऑफ-व्यू में: उदाहरण के लिए: विभाजन का उपयोग कच्चे उपकरण के रूप में किया जाता है, वर्चुअलबॉक्स के लिए एक वर्चुअल डिस्क बनाने के लिए (इसलिए) इस विभाजन के संदर्भ में की तरह कुछ है: /dev/sdf3
) या विभाजन इस विभाजन के संदर्भ में की तरह कुछ है कच्चे उपकरण के रूप में प्रयोग किया जाता है, iSCSI के लिए एक LUN को बनाने के लिए (ताकि: /dev/sdc6
)
तो अब बूट पर, उदाहरण के लिए r.local में, आपको एक विश्वसनीय तरीके से खोजना होगा, /dev/sdXX
आपके समर्पित RAW विभाजन का उपकरण क्या है , और कुछ फ़ाइल को अनुकूलित करें:
उदाहरण 1
वर्चुअलबॉक्स डिस्क * .vmk इस कच्ची डिस्क का विवरण, भाग में कुछ इस तरह है:
\# Extent description
RW 488397167 FLAT "/dev/sdXX" 0
और फिर VirtualBox सेवा को पुनरारंभ करें
उदाहरण २
tgtd कॉन्फ़िगरेशन में, एक लक्ष्य: target0 /dev/sdd6
बिल्ड टाइम पर संबंधित था । रिबूट के बाद आपको एक ही पार्टीशन बदला हुआ मिलता है। /deb/sdc6
यह रिमूवेबल डिस्क, USB या eSATA के साथ होता है! तो नए डिवाइस को स्वचालित रूप से कैसे ढूंढें? फिर से /etc/rc.d/rc.local में
तो इस मामले में हमें यह जानने के लिए एक विश्वसनीय तरीके की आवश्यकता है कि नया डिवाइस नाम क्या है। GPT विभाजन GPT तालिका में लिखे गए किसी भी GPT विभाजन के लिए अद्वितीय GUID प्रदान करता है।
gdisk यह जानकारी लिस्टिंग मोड के साथ प्रदान नहीं करता है, लेकिन केवल इसके साथ इंटरैक्टिव मोड में: i कमांड। सौभाग्य से, ब्लकिड करता है!
तो आपको अपने सभी डिस्क में देखने के लिए एक शेल स्क्रिप्ट लिखने की जरूरत है, जो कि डिवाइस है, जो /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 स्क्रिप्ट में उपयोग करें।