ฉันจะเปลี่ยน UUID ของดิสก์เป็นสิ่งที่ฉันต้องการได้อย่างไร


29

ฉันมีสถานการณ์ที่ไม่เหมือนใครซึ่งฉันต้องเปลี่ยน UUID ของ usb flash drive เป็น UUID ก่อนหน้า ฉันฟอร์แมตแล้วและเห็นได้ชัดว่ามีการเปลี่ยนแปลงจำนวน ...

ฉันติดตั้งเซิร์ฟเวอร์ ubuntu พร้อม 1TB hdd และแฟลชไดรฟ์ usb 4GB เพื่อบู๊ตจาก Grub บน hdd ได้รับการกำหนดค่าสำหรับ UUID ซึ่งเปลี่ยนไปเมื่อฉันจัดรูปแบบไดรฟ์ usb และติดตั้งเซิร์ฟเวอร์ Ubuntu ใหม่ ฉันไม่มีจอภาพภายนอกดังนั้นฉันจึงเสียบ usb กับแล็ปท็อปและติดตั้งเซิร์ฟเวอร์ที่นั่น ... กว่าฉันจะย้ายไปยังฮาร์ดแวร์ของเซิร์ฟเวอร์

ตามที่ฉันกล่าวถึงปัญหาของฉันคือฉันต้องการ usb เพื่อกลับไปที่ UUID ก่อนหน้ามิฉะนั้นเซิร์ฟเวอร์จะไม่บูต และฉันไม่สามารถรับจอภาพภายนอกได้จนถึงวันจันทร์! :)

ฉันรู้ว่าฉันต้องการไฟล์เหล่านี้เปลี่ยนแปลงหลังจากนั้น:

ไฟล์ที่ UUID สำคัญที่สุด:

/boot/grub/menu.lst

/etc/fstab

/etc/initramfs-tools/conf.d/resume

แต่ฉันไม่พบที่ใดก็ได้ในข้อมูลเน็ตเกี่ยวกับการกำหนด UUID เอง

ใคร?

คำตอบ:


37

หากคุณใช้ ext สำหรับมัน:

tune2fs /dev/{device} -U {uuid}

จาก man tune2fs

-U UUID

ตั้งค่าตัวระบุที่เป็นสากล (UUID) ของระบบไฟล์เป็น UUID รูปแบบของ UUID c1b9d5a2-f162-11cf-9ece-0020afc76f16เป็นชุดของตัวเลขฐานสิบหกแยกจากกันโดยยัติภังค์เช่นนี้: พารามิเตอร์ UUID อาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้:

clear  clear the filesystem UUID
random generate a new randomly-generated UUID
time   generate a new time-based UUID

UUID อาจถูกใช้โดยการเมานต์ (8), fsck (8) และ / etc / fstab (5) (และอื่น ๆ ) โดยการระบุ UUID = uuid แทนชื่ออุปกรณ์พิเศษบล็อกเช่น / dev / hda1


นั่นได้ผล! แต่ฉันหาไม่ได้: /etc/initramfs-tools/conf.d/resume ฉันพบว่า /boot/grub/menu.lst ถูกแปลงเป็น /boot/grub/grub.cfg

ฉันมี /etc/initramfs-tools/conf.d/resume บนระบบของฉัน และ grub.cfg แน่นอน menu.lst ใหม่ (ผมคิดว่าหนึ่งเข้ามาเล่นกับ grub2 ใหม่.
Rinzwind

ไม่ว่าฉันจะพยายามอะไรฉันได้รับข้อผิดพลาดเมื่อพยายามตั้งค่า UUID ของตัวเอง (tune2fs: รูปแบบ UUID ไม่ถูกต้อง) มีคำสั่งซื้อเฉพาะสิ่งหรือไม่
แอนดรู

tun2fs ไม่ทำงานบนดิสก์ ZFS gpt ของฉันฉันจะทำอะไรที่นั่น
Brian Thomas

ดูคำตอบสำหรับ XFS (xfs_admin) ฉันขอแนะนำให้มองหา zfs_admin แต่ไม่ใช่ zfs Solaris หรือไม่! คุณเห็นว่า Ubuntu สามารถช่วยเหลือได้ที่นี่ได้อย่างไร
Rinzwind

14

ฉันรู้ว่านี่เป็นคำถามแบบเก่า แต่ฉันพบว่ามีการเปลี่ยนแปลงใหม่และนี่คือสิ่งที่ google สอดแนมสำหรับฉันดังนั้นฉันจะโพสต์คำตอบที่ฉันพบที่นี่

เมื่อฉันพยายามเปลี่ยน uuid ของระบบไฟล์รูทของฉัน (เป็นจุดเริ่มต้นที่รู้จักกันดีและคำต่อท้ายหมายเลขซีเรียล) ใน Ubuntu 14.04 ใหม่ฉันพบว่าตัวปรับแต่งสยองขวัญของฉันรายงานกลับคืนมา: ฉันไม่สามารถทำได้กับระบบไฟล์ที่ติดตั้ง ฉันขึ้นอยู่กับความสามารถในการใช้ภาพแม่แบบที่มี uuid ที่รู้จักกันดีและเปลี่ยนการติดตั้งแต่ละรายการเป็น uuid ต่อเนื่อง ฉันพบว่าปัญหาไม่สามารถเอาชนะได้

มีแฟล็กที่ต้องปิดใช้งานเพื่ออนุญาตการเปลี่ยนแปลง mount-uuid กับ tune2fs ใหม่ นี่คือสิ่งที่กระบวนการของฉันดูเหมือน:

root@ubuntu1404:~# blkid
/dev/sda1: UUID="2ec827b0-72be-4c73-b58a-102a37aa24a3" TYPE="ext4"
root@ubuntu1404:~# uuid="deafcafe-abba-daba-deca-fc0ffee05065"
root@ubuntu1404:~# root_disk=$(df /|grep /|cut -d' ' -f1)
root@ubuntu1404:~# echo $root_disk
/dev/sda1
root@ubuntu1404:~# tune2fs -U $uuid $root_disk
tune2fs 1.42.9 (4-Feb-2014)
The UUID may only be changed when the filesystem is unmounted.
root@ubuntu1404:~# tune2fs -O ^uninit_bg $root_disk
tune2fs 1.42.9 (4-Feb-2014)
root@ubuntu1404:~# tune2fs -U $uuid $root_disk
tune2fs 1.42.9 (4-Feb-2014)
root@ubuntu1404:~# tune2fs -O +uninit_bg $root_disk
tune2fs 1.42.9 (4-Feb-2014)
root@ubuntu1404:~# df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       7.3G  3.9G  3.0G  58% /
root@ubuntu1404:~# blkid
/dev/sda1: UUID="deafcafe-abba-daba-deca-fc0ffee05065" TYPE="ext4"
root@ubuntu1404:~#

ขอบคุณ อาจมีประโยชน์ในอนาคต แต่ฉันยังคงอยู่ที่ 12.04 :)

1
คุณสามารถใช้root_disk=$(findmnt -n -o SOURCE /)แทนท่อเพื่อ grep และตัด
mivk

อย่าทำอย่างนั้นหรือคุณจะต้องเสียหายระบบไฟล์ของคุณ ฉันลบออกแล้วเพิ่มกลับมาuninit_bgและนำไปสู่ความเสียหายของข้อมูลเมตาและการนับซ้ำแบบอ่านอย่างเดียวโดยอัตโนมัติในการบูตครั้งถัดไป ( ext4_mb_generate_buddy:757: group 1, block bitmap and bg descriptor inconsistent: 3701 vs 3700 free clustersประเภทข้อความผิดพลาด) เหตุผลก็คือtune2fsปรับเปลี่ยนดิสก์โดยตรงภายใต้ฝ่าเท้าของเคอร์เนลและเมื่อเคอร์เนลได้รับการปรับปรุงbgข้อมูลเมตาครึ่งหนึ่งของเวลาที่มันทำลายข้อมูลเมตา! ด้านล่าง: ไม่สามารถเปลี่ยน fileysstem UUID ได้อย่างปลอดภัยโดยไม่ต้องถอดระบบไฟล์ออก
เอริค

6

สำหรับ xfs เห็น man xfs_admin

xfs_admin -U {uuid} {device}

{uuid} สามารถ 'สร้าง' เพื่อรับ uuid ใหม่

สำหรับ reiserfs เห็น man tunefs.reiserfs

tunefs.reiserfs -i {uuid} {device}

สำหรับ btrfs ดูเหมือนว่า uuid จะถูกใช้ผ่านระบบไฟล์ดังนั้นทุกโหนดจะต้องได้รับการอัพเดต ยังไม่มีวิธีที่ปลอดภัยในการทำเช่นนั้น


0

5
ยินดีต้อนรับสู่ถาม Ubuntu! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Peachy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.