सवाल मैं फाइल सिस्टम के यूयूआईडी कैसे पा सकता हूं


मैं उबंटू चला रहा हूं, और जानना चाहता हूं UUID एक विशेष फाइल सिस्टम (विभाजन नहीं) के। मुझे पता है कि मैं उपयोग कर सकता हूँ e2label /dev/sda1 फाइल सिस्टम लेबल का पता लगाने के लिए, लेकिन यह खोजने के लिए एक समान तरीका प्रतीत नहीं होता है UUID


114
2018-05-02 15:47


मूल


सभी उत्तरों के लिए धन्यवाद, मुझे यकीन है कि मैं उन सभी को विभिन्न परिस्थितियों में उपयोग करूंगा। - Brad Gilbert
ध्यान दें कि शीर्षक "मैं विभाजन के यूयूआईडी को कैसे ढूंढूं"। जीपीटी विभाजन तालिका का उपयोग करते समय यह प्रश्न केवल समझ में आता है। यहां उस प्रश्न का उत्तर दिया गया है। - Alastair Irvine


जवाब:


एक और कमांड जो उपलब्ध हो सकता है और इसके लिए काफी अच्छा काम करता है वह 'ब्लिकिड' है। यह e2fsprogs पैकेज का हिस्सा है। इसके उपयोग के उदाहरण:

/ Dev / sda1 पर डेटा देखें:

topher@crucible:~$ sudo blkid /dev/sda1
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"

सभी विभाजनों के लिए यूयूआईडी डेटा दिखाएं:

topher@crucible:~$ sudo blkid
/dev/sda1: UUID="727cac18-044b-4504-87f1-a5aefa774bda" TYPE="ext3"
/dev/sdb: UUID="467c4aa9-963d-4467-8cd0-d58caaacaff4" TYPE="ext3"

प्रारूप को पढ़ने में आसान सभी विभाजनों के लिए यूयूआईडी डेटा दिखाएं: (नोट: नए रिलीज में, blkid -L एक अलग अर्थ है, और blkid -o list इसके बजाय इस्तेमाल किया जाना चाहिए)

topher@crucible:~$ sudo blkid -L
device     fs_type label    mount point    UUID
-------------------------------------------------------------------------------
/dev/sda1 ext3             /              727cac18-044b-4504-87f1-a5aefa774bda
/dev/sdc  ext3             /home          467c4aa9-963d-4467-8cd0-d58caaacaff4

केवल / dev / sda1 के लिए UUID दिखाएं और कुछ और नहीं:

topher@crucible:~$ sudo blkid -s UUID -o value /dev/sda1
727cac18-044b-4504-87f1-a5aefa774bda

145
2018-05-04 19:11



मेरे उबंटू कंप्यूटर पर, मुझे सूडो का उपयोग करने की आवश्यकता नहीं है। - Brad Gilbert
बस टाइपिंग blkid, मुझे वही मिला जो मैं चाहता था, लेकिन मैंने जो कुछ भी मांगा उससे काफी नहीं। (मैं इसे वैसे भी स्वीकार कर रहा हूं, क्योंकि मुझे यकीन है कि मैं इसे अक्सर इस्तेमाल करूंगा) - Brad Gilbert
उबंटू के नए संस्करणों के लिए समकक्ष कमांड पर blkid -L अब है blkid -o list; -L विकल्प बदल दिया गया है -L label निर्दिष्ट लेबल का उपयोग करने वाले डिवाइस को देखने के लिए। - aculich
@aculich मैंने हाल के वाक्यविन्यास को शामिल करने के उत्तर को अद्यतन किया है blkid। इसका जिक्र करने के लिए धन्यवाद। - Christopher Cashell
बढ़िया, मैं कभी नहीं जानता था blkid; मैंने हमेशा किया है ls -l /dev/disk/by-uuid। Gentoo पर, blkid में है sys-apps/util-linux - AdmiralNemo


केवल जीपीटी विभाजन डिस्क के लिए

एक जीपीटी प्रारूपित डिस्क पर प्रत्येक विभाजन को एक GUID असाइन किया जाता है, जो यूयूआईडी का एक रूप है, हालांकि शायद मूल पोस्टर का जिक्र नहीं था। इसलिए यह उत्तर मूल प्रश्नकर्ता के लिए शायद कम सहायक है। फिर भी मुझे विश्वास है कि ध्यान देने योग्य एक महत्वपूर्ण भेद है।

GPT स्वरूपित डिस्क / dev / sda पर विभाजन 1 का GUID प्राप्त करने के साथ-साथ इसके विभाजन लेबल और इसी तरह:

sudo sgdisk -i 1 /dev/sda

या सभी के साथ:

ls -l /dev/disk/by-partuuid

किसी निश्चित विभाजन पर फ़ाइल सिस्टम की रूट के साथ बूट करने के लिए आप linux कर्नेल पैरामीटर सिंटैक्स का उपयोग करेंगे:

root=PARTUUID=87654321-4321-4321-abcd-123456789012

इस मामले में आप केवल यूयूआईडी की शुरुआत निर्दिष्ट कर सकते हैं - अद्वितीय होने के लिए पर्याप्त है। यह पैरामीटर अधिक आदिम है और कर्नेल द्वारा इसकी बूट प्रक्रिया में पहले समझा जा सकता है।


इनके बीच अर्थशास्त्र में एक अंतर है:

डिस्क में विभाजन होते हैं, एक विभाजन में एक फाइल सिस्टम होता है, एक फाइल सिस्टम निर्देशिका और फाइल रखती है। कुछ सेट-अप और ऑपरेटिंग सिस्टम के लिए और परतें हैं।

GUID UUID और संबंधित लेबल विभाजन को संदर्भित करता है, लेकिन विभाजन की सामग्री नहीं। एक ही डिस्क पर एक नया विभाजन, या किसी नई डिस्क पर विभाजन के पास एक नया GUID UUID होगा। एक ही विभाजन एक फाइल सिस्टम को एक दिन और दूसरे दिन एक अलग दिन पर पकड़ सकता है। यह केवल जीपीटी प्रारूपित डिस्क के लिए मौजूद है, लेकिन विरासत विभाजित डिस्क के लिए नहीं। निर्दिष्ट करने से यहां आमतौर पर कोई और उपयोगिता नहीं है root=/dev/sda1 या root=8:1

अन्य वर्तमान उत्तरों ए के यूयूआईडी को संदर्भित करते हैं फाइल सिस्टम कुछ विभाजन में। यदि फ़ाइल सिस्टम की प्रतिलिपि बनाई गई है, पूरी तरह से, किसी अन्य विभाजन या हार्ड डिस्क पर जो मान वैसा ही रहता है। यह यूयूआईडी एक स्थानांतरित फाइल सिस्टम खोजने में उपयोगी है। इसलिए यह ज्यादातर लोगों के लिए शायद अधिक प्रासंगिक है। लिनक्स कर्नेल पैरामीटर root=UUID=87654321-4321-4321-a567-123456789012 इसका मतलब है।

मेरा मानना ​​है root=LABEL= तथा root=UUID= शुरुआती उपयोगकर्ता स्थान द्वारा कार्यान्वित किया जाता है, मैंने अपने सिस्टम पर दूसरे दिन इनिट कोड को / dev / disk / by-uuid और / dev / disk / by-label में लिंक किया है (लिंक जो मुझे विश्वास है कि मेरे द्वारा उपयोगकर्ता स्पेस में udev द्वारा बनाया गया है प्रणाली)।

[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n183


9
2018-06-23 21:55



सही उपयोग प्रतीत होता है -i1 या -i 1, विरोध के रूप में -i:1, sgdisk 1.0.1 के साथ। - Charles Duffy
@CharlesDuffy उस त्रुटि को खोजने के लिए धन्यवाद। मैंने इसे सही करने के लिए उत्तर संपादित किया है। - John S Gruber


Ext2 / ext3 / ext4 के लिए ऐसा करने का सबसे आसान तरीका यह है:

/sbin/tune2fs -l /dev/sda1

5
2018-05-02 15:57



यह काम करेगा, बशर्ते आपके फाइल सिस्टम को ext2, ext3 या ext4 के रूप में स्वरूपित किया गया हो। अधिकांश फाइल सिस्टम इनमें से एक हैं लेकिन सभी नहीं। यह स्वैप विभाजन के लिए भी काम नहीं करेगा। सार्वभौमिक तरीके से मेरा जवाब देखें। - Hamish Downer
इसके परिणामस्वरूप मेरे मामले में Couldn't find valid filesystem superblock. - Michel


ऐसा करने का अनुशंसित तरीका करना है

sudo vol_id -u /dev/sda2

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

जैसा कि इस प्रश्न की टिप्पणियों में उल्लेख किया गया है, vol_id आपके पथ में नहीं हो सकता है। उबंटू पर यह / sbin है इसलिए उपर्युक्त काम करेगा। फेडोरा के लिए इसकी आवश्यकता होती है

sudo /lib/udev/vol_id -u /dev/sda2

यदि अन्य स्थानों में अन्य स्थानों में vol_id है तो एक टिप्पणी पोस्ट करें और मैं इसे इस उत्तर में जोड़ दूंगा।


3
2018-05-02 16:53



यह मेरे फेडोरा 10 लैपटॉप पर काम नहीं करता है। - Eddie
यह मेरी तुलना में एक बेहतर समाधान है। एडी, vol_id / lib / udev में स्थित है। मिश, क्या आप vol_id के सामने पूर्ण पथ को उपसर्ग करने के लिए अपना उत्तर संपादित कर सकते हैं? / lib / udev किसी भी वितरण पर डिफ़ॉल्ट रूप से रूट के पथ में नहीं है जिसे मैं जानता हूं। - Mihai Limbăşan
"/ lib / udev / vol_id / dev / sda2" काम करने के लिए प्रतीत होता है। कुछ लोगों के पास उनके रास्ते में / lib / udev होगा। - Eddie
मेरे उबंटू कंप्यूटर पर एक प्रतीकात्मक लिंक है /sbin/vol_id सेवा मेरे /lib/udev/vol_id - Brad Gilbert
vol_id उबंटू से कर्मिक (9 .10) के रूप में गिरा दिया गया है, इसलिए अब उपयोगी या प्रासंगिक नहीं है। वहां पहुंचने के लिए बहुत सारे गर्भपात हुए vol_id प्रतिस्थापित करने के लिए बनाया गया एक बिंदु पर था blkid। - Alain O'Dea


मान लें कि आप एसडीए 1 के लिए यूयूआईडी चाहते हैं, आप इस तरह कुछ कोशिश कर सकते हैं:

for v in /dev/disk/by-uuid/* ; do echo "`readlink $v`: $v" | grep ../sda1 | cut -d\: -f2 | cut -d/ -f5 ; done

तदनुसार sda1 समायोजित करें। सभी विभाजनों के लिए यूयूआईडी प्राप्त करने के लिए, greps और कटौती ड्रॉप, एक ला:

for v in /dev/disk/by-uuid/* ; do echo "`readlink $v`: $v" ; done

मेरे डेस्कटॉप पर sda1 के लिए नमूना आउटपुट:

[mihailim@home ~]$ for v in /dev/disk/by-uuid/* ; do echo "`readlink $v`: $v" | grep ../sdb3 | cut -d\: -f2 | cut -d/ -f5 ; done
dc8c49f1-e2dc-46bc-ba02-013f26c85f70

संपादित करें: कृपया ध्यान दें कि यह समाधान, जबकि udev-> vol_id एक से अधिक प्रतिस्पर्धा करता है, करता है नहीं रूट विशेषाधिकारों की आवश्यकता है, 2005 के बाद या तो कर्नेल पर काम करेगा, और किसी भी उपयोगकर्ता के लिए पथ में डिफ़ॉल्ट रूप से किसी भी लिनक्स वितरण में मौजूद उपकरण पर निर्भर करता है।


2
2018-05-02 16:22



यह हाल ही में पर्याप्त devfs चलाने वाले किसी भी कंप्यूटर पर काम करेगा। - Eddie


यह मेरे लिए काम करता प्रतीत होता है:

sudo dumpe2fs /dev/sda1 | grep UUID

2
2017-09-18 21:08





आप सभी यूयूआईडी मुद्रित करने के लिए इसका भी उपयोग कर सकते हैं:

for disk in /dev/disk/by-uuid/*; do 
    basename "$(readlink "$disk")"
    basename "$disk"
    echo
done

या यह तर्कसंगत सरल कमांड, प्रतिस्थापित sda1 जिस डिवाइस को आप खोजना चाहते हैं उसके साथ:

disk=sda1
find /dev/disk/by-uuid -type l -exec sh -c "readlink {} | grep -o $disk && basename {}" \;

सभी यूयूआईडी मुद्रित करने के लिए दूसरी विधि का अनुकूलन:

find /dev/disk/by-uuid -type l -exec sh -c 'basename $(readlink {}); basename {}; echo' \;

1
2017-11-30 23:09





ऐसा करने के लिए स्क्रिप्ट-क्लीन तरीका जो किसी भी प्रकार की फाइल सिस्टम पर काम करता है:

lsblk -no UUID <device-containing-FS>

या, माउंटपॉइंट (या इसके भीतर कोई भी फ़ाइल) दिया गया है:

lsblk -no UUID $(df -P <file> | awk 'END{print $1}')

आउटपुट यूयूआईडी, पूरे यूयूआईडी है, और यूयूआईडी के अलावा कुछ भी नहीं है।


1
2017-12-30 13:29





आप किसी विशेष ड्राइव के लिए यूयूआईडी प्राप्त करने के लिए निम्न का उपयोग कर सकते हैं,

sudo vol_id -u /dev/sda1

या आप संलग्न मीडिया के लिए सभी यूयूआईडी सूचीबद्ध करने के लिए इसका उपयोग कर सकते हैं,

ls /dev/disk/by-uuid

0
2018-05-02 17:24



अब उबंटू 9 .10 के रूप में लागू नहीं है vol_id निकाल दिया गया है। - Alain O'Dea


ls -l /dev/disk/by-uuid | grep `lsblk | grep "/" | awk '{print $1}'` | awk '{print $9}'

उपरोक्त कई वर्षों में लिनक्स सिस्टम (अधिकांश मुझे मिला है) पर काम करना प्रतीत होता है। इसमें त्रुटियां हो सकती हैं, मुझे नहीं पता। मैं सीरियल नंबर प्राप्त करना पसंद करूंगा लेकिन ... यह रूट फाइल सिस्टम का यूयूआईडी है।

अगर किसी के पास रूट होने की आवश्यकता के बिना धारावाहिक संख्या प्राप्त करने का कोई तरीका है (जैसा कि मेरा है) और यूनिक्स के विभिन्न संस्करणों में अलग "असामान्य" पैकेज स्थापित नहीं करते हैं, तो मैं इसकी सराहना करता हूं - हमेशा कुछ सीख सकता है। और मुझे पता है कि मैं चीजों को मिला रहा हूं - रूट फाइल सिस्टम यूयूआईडी है, डिस्क नहीं।

उद्देश्य, बीटीडब्लू, प्रति मशीन एक अद्वितीय संख्या उत्पन्न करना है जिसे संशोधित नहीं किया जा सकता है (जैसे डिस्क सीरियल नंबर और मैक पते जैसे एक बार बहुत पहले थे)।

यह एक मशीन के लिए सॉफ्टवेयर के एन्कोडिंग के लिए प्रयोग किया जाता है। मैक पता तब तक ठीक था जब तक कि उन्हें आभासी होने की अनुमति नहीं दी गई ... कुछ आलसी ग्राहकों ने अपने मैक पते को निरंतर (निश्चित रूप से विभिन्न नेटवर्कों पर) सेट किया है और मुझे भुगतान करने से बचा है।

AIX में मशीन को पहचानने वाली एक संख्या प्राप्त करने के लिए एक ही कॉल है। हार्डवेयर पर बदलाव या सॉफ़्टवेयर अपडेट होने पर यह परवाह नहीं है, इसलिए मुझे नहीं पता कि वे इसे कैसे करते हैं ... यदि मदरबोर्ड बदलता है, तो संख्या बदल जाती है, इसलिए मुझे लगता है कि वे इसे वहां छुपाते हैं। और वह दुर्लभ से परे है।


0
2018-03-24 01:11