আমি উবুন্টু চালাচ্ছি এবং UUID
একটি নির্দিষ্ট ফাইল সিস্টেমের (পার্টিশন নয়) সন্ধান করতে চাই। আমি জানি আমি e2label /dev/sda1
ফাইল সিস্টেমের লেবেল সন্ধানের জন্য ব্যবহার করতে পারি তবে এটি সন্ধানের মতো কোনও উপায় বলে মনে হয় না UUID
।
আমি উবুন্টু চালাচ্ছি এবং UUID
একটি নির্দিষ্ট ফাইল সিস্টেমের (পার্টিশন নয়) সন্ধান করতে চাই। আমি জানি আমি e2label /dev/sda1
ফাইল সিস্টেমের লেবেল সন্ধানের জন্য ব্যবহার করতে পারি তবে এটি সন্ধানের মতো কোনও উপায় বলে মনে হয় না UUID
।
উত্তর:
আর একটি কমান্ড যা উপলভ্য এবং এটির জন্য বেশ ভালভাবে কাজ করে তা হ'ল ব্লকিড '। এটি 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 এর জন্য কেবলমাত্র ইউইউডি এবং অন্য কিছুই প্রদর্শন করুন:
topher@crucible:~$ sudo blkid -s UUID -o value /dev/sda1
727cac18-044b-4504-87f1-a5aefa774bda
blkid
, যা চেয়েছিলাম ঠিক তা পেয়েছি, তবে যা চেয়েছিলাম তা নয়। (আমি যাইহোক এটি গ্রহণ করছি, কারণ আমি নিশ্চিত যে আমি এটি প্রায়শই ব্যবহার করব)
blkid -L
এখন সমপরিমাণ কমান্ড blkid -o list
; -L
বিকল্প পরিবর্তন করা হয়েছে -L label
একটি ডিভাইস নির্দিষ্ট ট্যাগ ব্যবহার করে সন্ধান করার।
blkid
। এটি উল্লেখ করার জন্য ধন্যবাদ।
blkid
; আমি সবসময় সবেমাত্র করেছি ls -l /dev/disk/by-uuid
। blkid
sys-apps/util-linux
কেবল জিপিটি পার্টিশনযুক্ত ডিস্কের জন্য
জিপিটি ফর্ম্যাটেড ডিস্কে প্রতিটি পার্টিশনকে একটি জিইউডি বরাদ্দ করা হয়, যা ইউইউইডের একটি রূপ, যদিও মূল পোস্টারটি উল্লেখ করছে তা সম্ভবত নয়। সুতরাং এই উত্তরটি সম্ভবত মূল প্রশ্নকারীকে কম সহায়ক। তবুও আমি বিশ্বাস করি যে একটি গুরুত্বপূর্ণ পার্থক্য লক্ষ্য করা যায়।
জিপিটি ফর্ম্যাটেড ডিস্ক / ডিভ / এসডিএ, পাশাপাশি এর পার্টিশন লেবেল ইত্যাদিতে পার্টিশন 1-এর জিইউইডি পাওয়ার জন্য:
sudo sgdisk -i 1 /dev/sda
বা সমস্ত সহ:
ls -l /dev/disk/by-partuuid
ফাইল সিস্টেমে একটি নির্দিষ্ট পার্টিশনের মূলটি বুট করার জন্য আপনি লিনাক্স কার্নেল প্যারামিটার সিনট্যাক্স ব্যবহার করতে পারেন:
root=PARTUUID=87654321-4321-4321-abcd-123456789012
এক্ষেত্রে আপনি ইউইউডি-র কেবল সূচনা নির্দিষ্ট করতে পারবেন - অনন্য হতে যথেষ্ট। এই প্যারামিটারটি আরও আদিম এবং বুট প্রক্রিয়াতে এর আগে কার্নেল দ্বারা এটি বোঝা যায়।
এর মধ্যে শব্দার্থবিজ্ঞানের মধ্যে পার্থক্য রয়েছে:
একটি ডিস্কে পার্টিশন থাকে, একটি পার্টিশন একটি ফাইল সিস্টেম ধারণ করে, একটি ফাইল সিস্টেম ডিরেক্টরি এবং ফাইল ধারণ করে। কিছু সেট আপ এবং অপারেটিং সিস্টেমের জন্য আরও স্তর রয়েছে।
জিইউইডি ইউআইডি এবং সম্পর্কিত লেবেল একটি পার্টিশনকে বোঝায়, তবে পার্টিশনের বিষয়বস্তু নয়। একই ডিস্কে একটি নতুন পার্টিশন, বা একটি নতুন ডিস্কের একটি পার্টিশনে একটি নতুন জিইউডি ইউআইডি থাকবে। একই পার্টিশনটি একদিন এক ফাইল সিস্টেম এবং অন্য দিনে অন্য একটি দিনে থাকতে পারে। এটি কেবলমাত্র জিপিটি ফর্ম্যাটেড ডিস্কের জন্য বিদ্যমান তবে লিগ্যাসি বিভাজনযুক্ত ডিস্কের জন্য নয়। এখানে নির্দিষ্টকরণ root=/dev/sda1
বা নির্দিষ্টকরণের চেয়ে বেশি কোনও ইউটিলিটি নেই root=8:1
।
অন্যান্য বর্তমান উত্তরগুলি কয়েকটি বিভাজনযুক্ত ফাইল সিস্টেমের ইউআইডিকে বোঝায় । যদি ফাইল সিস্টেমটি সামগ্রিকভাবে অন্য একটি পার্টিশন বা হার্ড ডিস্কে অনুলিপি করা হয় তবে মানটি একই থাকে। এই ইউআইডি একটি সরানো ফাইল সিস্টেম সন্ধানে কার্যকর। সুতরাং এটি সম্ভবত বেশিরভাগ মানুষের কাছে প্রাসঙ্গিক। লিনাক্স কার্নেল পরামিতি এটি root=UUID=87654321-4321-4321-a567-123456789012
বোঝায়।
আমি বিশ্বাস করি root=LABEL=
এবং root=UUID=
তাড়াতাড়ি ইউজারস্পেস দ্বারা প্রয়োগ করা হয়, আমার সিস্টেমে অন্য দিন আমি যে ডিআইডি কোড দেখেছি সেগুলি এই পরামিতিগুলিকে / ডিভ / ডিস্ক / বাই-ইউইড এবং / ডেভ / ডিস্ক / বাই লেবেলে অনুবাদ করেছে (যে লিঙ্কগুলি আমি বিশ্বাস করি তাতে উদেব তৈরি করেছেন আমার সিস্টেমে ইউজারস্পেস)।
[1] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/init/do_mounts.c#n183
-i1
বা এর -i 1
বিপরীতে দেখা যাচ্ছে -i:1
।
স্ক্রিপ্ট-ক্লিন উপায় এটি করার জন্য যা কোনও ধরণের ফাইল সিস্টেমে কাজ করে তা হল:
lsblk -no UUID <device-containing-FS>
বা, মাউন্টপয়েন্ট (বা এর মধ্যে কোনও ফাইল) দেওয়া হয়েছে:
lsblk -no UUID $(df -P <file> | awk 'END{print $1}')
আউটপুট হ'ল ইউআইডি, পুরো ইউআইডি এবং ইউআইডি ছাড়া আর কিছুই নয়।
blkid
@ ক্রিসটোফার-ক্যাসেলের উত্তরের চেয়ে এটি আরও ভাল , কারণ আপনাকে রুট হওয়ার দরকার নেই। মাউন্ট-পয়েন্ট অথবা একটি ফাইল জন্য আরো ভালো করতে: lsblk -no UUID $(findmnt -n -o SOURCE --target <file>)
।
findmnt -n -o SOURCE --target ~
দেয়:/dev/mapper/vg_svelte-home[/@home]
lsblk -no UUID $(findmnt -n -o SOURCE --target <file> | cut -d[ -f1)
উপস্থিত থাকার সময় সাবভলিউমটি থেকে মুক্তি পাওয়া উচিত।
Ext2 / ext3 / ext4 এর জন্য এটি করার সহজতম উপায় হ'ল:
/sbin/tune2fs -l /dev/sda1
Couldn't find valid filesystem superblock.
এটি করার প্রস্তাবিত উপায়টি হ'ল
sudo vol_id -u /dev/sda2
ইউআইডি ব্যবহারের জন্য আরও তথ্যের জন্য এই নিবন্ধটি দেখুন (উবুন্টু সহায়তা থেকে, তবে ইউআইডি ব্যবহার করে যে কোনও লিনাক্স ডিস্ট্রোর পক্ষে কাজ করা উচিত)।
এই প্রশ্নের মন্তব্যে উল্লিখিত হিসাবে, ভোল_আইডি আপনার পথে নাও থাকতে পারে। উবুন্টুতে এটি / এসবিনে রয়েছে তাই উপরেরগুলি কাজ করবে। ফেডোরার জন্য এটি প্রয়োজনীয় মনে হয়
sudo /lib/udev/vol_id -u /dev/sda2
যদি অন্য বিতরণে অন্য জায়গায় ভোল_আইড থাকে তবে একটি মন্তব্য পোস্ট করুন এবং আমি এটি এই উত্তরে যুক্ত করব।
/sbin/vol_id
থেকে/lib/udev/vol_id
এটি আমার পক্ষে কাজ করে বলে মনে হচ্ছে:
sudo dumpe2fs /dev/sda1 | grep UUID
ধরে নিই যে আপনি sda1 এর জন্য ইউইউডি চান, আপনি এরকম কিছু চেষ্টা করতে পারেন:
for v in /dev/disk/by-uuid/* ; do echo "`readlink $v`: $v" | grep ../sda1 | cut -d\: -f2 | cut -d/ -f5 ; done
সেই অনুযায়ী sda1 সামঞ্জস্য করুন। সমস্ত পার্টিশনের জন্য ইউআইডিগুলি পেতে গ্রিপস এবং কাটগুলি ফেলে দিন:
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-> ভোল_আইডি একের চেয়ে বেশি স্বতন্ত্র, যদিও মূল অধিকারগুলির প্রয়োজন হয় না , ২০০৫-পরবর্তী কোনও কার্নেলে কাজ করবে এবং ডিফল্টরূপে যে কোনও লিনাক্স বিতরণে উপস্থিত সরঞ্জামগুলির উপর নির্ভর করবে যে কোনও ব্যবহারকারীর জন্য পথ।
আপনি সমস্ত ইউইউডি মুদ্রণের জন্য এটি ব্যবহার করতে পারেন:
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' \;
ls -l /dev/disk/by-uuid | grep `lsblk | grep "/" | awk '{print $1}'` | awk '{print $9}'
উপরেরগুলি বেশিরভাগ বছর ধরে (বেশিরভাগ ক্ষেত্রেই আমি খুঁজে পেয়েছি) লিনাক্স সিস্টেমে কাজ করে বলে মনে হচ্ছে। এর ত্রুটি থাকতে পারে, আমি জানি না। আমি সিরিয়াল নম্বর পেতে পছন্দ করব তবে ... এটি মূল ফাইল সিস্টেমের ইউআইইডি।
কারও কাছে যদি রুট হওয়ার দরকার না পড়ে সিরিয়াল নম্বর পাওয়ার উপায় থাকে (যেমনটি আমার হয়) এবং ইউনিক্সের বিভিন্ন সংস্করণে পৃথক "অস্বাভাবিক" প্যাকেজগুলি ইনস্টল না করে আমি এটির প্রশংসা করব - সর্বদা কিছু শিখতে পারি। এবং আমি সচেতন যে আমি জিনিসগুলি মিশ্রিত করছি - এটি হ'ল মূল ফাইল সিস্টেম ইউআইডি, কোনও ডিস্ক নয়।
বিটিডাব্লু এর উদ্দেশ্য হ'ল মেশিনে এক অনন্য নম্বর তৈরি করা যা সংশোধন করা যায় না (ডিস্ক সিরিয়াল নম্বর এবং ম্যাক অ্যাড্রেসের মতো একসময় অনেক আগে ছিল)।
এটি একটি একক মেশিনে সফ্টওয়্যার এনকোডিংয়ের জন্য ব্যবহৃত হয়। ম্যাকের ঠিকানা ঠিক ছিল যতক্ষণ না তারা তাদের ভার্চুয়াল হওয়ার অনুমতি দেয় ... কিছু নির্লজ্জ গ্রাহক কেবল তাদের ম্যাকের ঠিকানাটি একটি ধ্রুবকটিতে (অবশ্যই বিভিন্ন নেটওয়ার্কে) সেট করে রেখেছিলেন এবং আমাকে অর্থ প্রদান করা এড়ান।
এইআইএক্সে একটি নম্বর পাওয়ার জন্য একটি কল রয়েছে যা মেশিনটিকে চিহ্নিত করে। হার্ডওয়্যার পরিবর্তন হয় বা সফ্টওয়্যার আপডেট হয় কিনা তা বিবেচ্য নয় তাই তারা কীভাবে এটি করবেন আমার কোনও ধারণা নেই ... যদি মাদারবোর্ড পরিবর্তন হয় তবে সংখ্যাটি পরিবর্তিত হয়, তাই আমি মনে করি তারা সেগুলিকে এখানে লুকিয়ে রাখে। এবং এটি বিরল beyond
নির্দিষ্ট ড্রাইভের জন্য ইউআইডি পাওয়ার জন্য আপনি নিম্নলিখিতটি ব্যবহার করতে পারেন,
sudo vol_id -u /dev/sda1
অথবা আপনি এটি সংযুক্ত মিডিয়াতে সমস্ত ইউআইডি-র তালিকা তৈরি করতে ব্যবহার করতে পারেন,
ls /dev/disk/by-uuid