linux: मैं अपने सिस्टम पर सभी उपलब्ध डिस्क के लिए सभी UUIDs कैसे देख सकता हूँ?


153

मेरा /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 देख सकता हूं?


@setzamora जवाब बेहतर है। कृपया स्वीकृत उत्तर बदलें।
nslntmnx

जवाबों:


134

में /dev/disk/by-uuidवहाँ में अपने प्रवेश के लिए प्रत्येक ड्राइव के UUID मानचित्रण सिमलिंक हैं /dev(उदाहरण के लिए /dev/sda1)


3
LVM विभाजन के समय यह पठनीय नहीं है।
ग्रेज़गोरज़ वियर्ज़ोवेकी

1
LVM अपनी संरचना में पहले से ही लंबे UUID जैसे पहचानकर्ताओं (हालांकि अलग तरह से प्रस्तुत) का उपयोग करता है। मुझे लगता है कि LVM के साथ फाइल सिस्टम UUID का उपयोग करने का एकमात्र कारण कुछ प्रकार के स्वचालन के लिए एकीकृत इंटरफ़ेस होगा, क्योंकि LVM पहले से ही आपके लिए मानव-अनुकूल नामों में LVs की मैपिंग करता है।
टेल्कॉम

2
ls -lha /dev/disk/by-uuid
deFreitas

157

नामक एक उपकरण है blkid(इसे रूट के रूप में उपयोग करें sudo),

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

आप अधिक जानकारी के लिए इस लिंक को देख सकते हैं


12
बस एक छोटी सी टिप्पणी: ऐसा लगता है कि समूह diskका सदस्य चलने के लिए पर्याप्त है blkid; पूर्ण सुपरसीजर विशेषाधिकारों की कोई आवश्यकता नहीं है।
arielf

10
यदि आप केवल UUID चाहते हैं (जैसे किसी स्क्रिप्ट में पार्स करने के लिए), तो आप कर सकते हैं blkid /dev/sda1 -s UUID -o value
जैक ओ'कॉनर

3
यहाँ त्वरित टिप्पणी: मेरे डिस्ट्रो में (डेबियन 8) यह UUID के साथ-साथ "PARTUUID" को जन्म देता है, जो कि भ्रामक है। मैंने {lsblk} कमांड का उपयोग किया जो केवल एक मूल्य देता है।
ताकुमार

2
यह एक बहुत समय बचाता है, हालांकि मैं blkid /dev/sd*सभी ड्राइवों को सूचीबद्ध करना पसंद करता हूं .. जो जानकारी बाहर जाती है वह आम तौर पर आपके द्वारा आवश्यक ड्राइव को खोजने के लिए पर्याप्त से अधिक है। :)
ज़्लाइटाका

2
GPT- विभाजन डिस्क के लिए PARTUUID विभाजन के लिए GPT UUID है, इसमें फ़ाइल सिस्टम के लिए नहीं। एक फाइल सिस्टम अभी तक नहीं बनाए जाने पर उपयोगी हो सकता है। MBR- विभाजन वाली डिस्क पर, PARTUUID एक वास्तविक UUID नहीं है, लेकिन केवल MBR + डैश + पार्टीशन नंबर से एक Windows डिस्क हस्ताक्षर है।
टेल्कॉम

31

उपयोग करने के लिए सबसे अच्छा कमांड है lsblk -f। यह सभी उपकरणों और विभाजनों को सूचीबद्ध करेगा, कि वे कैसे (यदि सभी पर) माउंट किए गए हैं और एक ही ड्राइव पर LVM, crypto_LUKS, या कई वॉल्यूम समूहों का उपयोग करने के मामले में उपकरणों की ट्री संरचना।


10

यह मेरे लिए काम करता है:

ls -la /dev/disk/by-uuid

यदि आप जांचना चाहते हैं कि विभाजन किस प्रकार का है, तो उपयोग करें:

df -Th

और अगर आप ext3 या ext2 है तो यह आपको दिखाएगा। आज इसने मेरी मदद की क्योंकि एक स्वरूपित ext2 विभाजन था और मुझे लगा कि यह ext3 था, जिससे माउंट विफल हो रहा था।


आप हमेशा कोशिश कर सकते हैं mount -t auto /dev/sda1 /media/sda1
ott-- 21

8

केवल UUIDएक विशिष्ट डिस्क डिवाइस प्राप्त करने के लिए (उदाहरण के लिए एक स्क्रिप्ट में उपयोग किए जाने के लिए) जिसका आप उपयोग कर सकते हैं:

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

/dev/sdXYउपकरण का नाम कहां है।


6
lsblk -o +uuid,name

आप उन सभी आउटपुट को देख सकते हैं जिन्हें -o( --output) के साथ जोड़ा जा सकता है

lsblk --help

साथ ही यह काम करेगा

# blkid

nameडिफ़ॉल्ट रूप से मुद्रित नहीं है ?
Don_crissti

यह है। इसे सिर्फ शैक्षिक उद्देश्यों के लिए जोड़ा (अपने इच्छित क्षेत्रों को अलग करने के लिए अल्पविराम जोड़ें)
निको रोड्सेविच

2

पिछले उत्तर कई उपकरणों के लिए या समान यूयूआईडी वाले उपकरणों के लिए काम नहीं करते हैं।

इसे इस्तेमाल करे:

sudo blkid /dev/sd*

1
वास्तव में ? आपका मतलब है, सबसे अधिक वोट दिया गया जवाब काम नहीं करता है?
don_crissti

एक सार्वभौमिक विशिष्ट पहचानकर्ता (UUID) हमेशा अद्वितीय होना चाहिए। यूयूआईडी का संपूर्ण उद्देश्य एक अद्वितीय, सार्वभौमिक रूप से होना है। यदि नहीं, तो समस्या है। मैंने कम से कम नेटवर्क उपकरणों के लिए क्लोन किए गए VMs में UUIDs को दोहराया है।
स्टीफन लासिवस्की

5
यदि आप ddकमांड के साथ एक पार्टीशन को क्लोन करते हैं तो कॉपी में एक ही uid होगा और हाँ, यह एक समस्या है। अन्य उत्तर यहां नहीं दिखाए जाएंगे।
केविन

1

निम्न कमांड लाइन के साथ आप यूयूआईडी प्लस मैपिंग टू पार्टिशन देख सकते हैं।

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


प्रति विभाजन एक फ़ाइल सिस्टम के लिए एक UUID है। एसडीए पर, मेरे पास 4 विभाजन हैं, इसलिए मेरे पास 4 यूयूआईडी थे। wiki.debian.org/Part-UUID
निकोलस गुएरनेट

1

मुझे आपके समान ही समस्या है: /dev/sd**रिबूट के बाद कर्नेल द्वारा नाम बदलना :

बेशक मेरे सभी ऑटोमैटिक माउंटिंग को /etc/fstabLABEL या 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 स्क्रिप्ट में उपयोग करें।


0

हार्ड डिस्क विभाजन के uid को देखने के लिए, मैं सिस्टम को लिनक्स सीडी के साथ बूट करता हूं और मेरे कंप्यूटर माउंट के साथ गोटो, पर क्लिक करें, जिस विभाजन को मैं देखना चाहता हूं। लिनक्स विभाजन का यूआईडी नंबर प्रदर्शित किया जाएगा।

लिनक्स सीडी बूट के बाद लिनक्स डिस्क उपयोगिता चलाकर आप डिस्क uuid भी देख सकते हैं।


"मेरा कंप्यूटर माउंट" क्या है? और "लिनक्स डिस्क उपयोगिता" क्या है, सूक्ति-डिस्क-उपयोगिता उर्फ ​​डिस्क जैसा लगता है?
Xen2050
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.