Jak zmienić UUID dysku na cokolwiek chcę?


29

Mam wyjątkową sytuację, w której muszę zmienić UUID dysku flash USB na poprzedni UUID. Sformatowałem go i oczywiście zmieniłem numer ...

Mam konfigurację serwera Ubuntu z dyskiem twardym 1 TB i 4 GB pamięci flash USB do rozruchu. Grub na dysku twardym jest skonfigurowany dla UUID, który zmienił się po sformatowaniu napędu USB i ponownej instalacji serwera Ubuntu. Nie mam zewnętrznego monitora, więc podłączam USB do laptopa i instaluję tam serwer ... niż przenoszę go na sprzęt serwerowy.

Jak wspomniałem, moim problemem jest to, że potrzebuję USB, aby wrócić do poprzedniego UUID, w przeciwnym razie serwer nie uruchomi się. I nie dostanę zewnętrznego monitora do poniedziałku! :)

Wiem, że potrzebuję później zmienić te pliki:

Pliki, dla których UUID ma największe znaczenie:

/boot/grub/menu.lst

/etc/fstab

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

Ale nigdzie w sieci nie mogę znaleźć informacji o dostosowywaniu UUID.

Ktoś?

Odpowiedzi:


37

Jeśli użyłeś do tego ext:

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

Z man tune2fs

-U UUID

Ustaw uniwersalnie unikalny identyfikator (UUID) systemu plików na UUID. Format UUID to seria cyfr szesnastkowych oddzielonych myślnikami, tak: c1b9d5a2-f162-11cf-9ece-0020afc76f16. Parametr UUID może być także jednym z następujących:

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

UUID może być użyty przez mount (8), fsck (8) i / etc / fstab (5) (i ewentualnie inne) poprzez podanie UUID = uuid zamiast specjalnej nazwy urządzenia blokowego, takiej jak / dev / hda1.


To się udało! Ale nie mogę znaleźć: /etc/initramfs-tools/conf.d/resume Odkryłem, że plik /boot/grub/menu.lst został przekonwertowany na /boot/grub/grub.cfg

Mam /etc/initramfs-tools/conf.d/resume w moim systemie. A grub.cfg jest rzeczywiście nowym menu.lst (myślę, że jeden z nich wszedł w grę z nowym grub2.
— Rinzwind

Bez względu na to, co próbuję, pojawia się błąd podczas próby ustawienia własnego UUID (tune2fs: nieprawidłowy format UUID). Czy istnieje konkretna kolejność rzeczy?
— Andrew

tun2fs nie działa na moim dysku gpt ZFS, co mam zrobić?
— Brian Thomas,

Patrząc na odpowiedź dotyczącą XFS (xfs_admin) Sugeruję poszukać zfs_admin Ale czy nie jest to ZFS Solaris ?! Jak widzisz, że Ubuntu może tutaj pomóc?
— Rinzwind

14

Zdaję sobie sprawę, że to trochę stare pytanie, ale odkryłem, że nastąpiła nowa zmiana, i właśnie to mnie zaskoczyło w Google, więc opublikuję odpowiedź, którą tu znalazłem.

kiedy próbowałem zmienić identyfikator UUID mojego głównego systemu plików (na dobrze znany początek i sufiks numeru seryjnego) na nowym Ubuntu 14.04, z przerażeniem zauważyłem, że tune2fs zgłosiło: Nie mogę tego zrobić na zamontowanych systemach plików. Zależy mi na tym, aby móc użyć obrazu szablonu ze znanym identyfikatorem użytkownika i zmienić każdą instalację na zserializowany identyfikator użytkownika. Odkryłem, że problem nie był nie do pokonania.

Istnieje flaga, którą należy wyłączyć, aby umożliwić zmiany montowanego UUID w nowym tune2fs. tak wyglądał mój proces:

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:~#

Dzięki. Może być pomocny w przyszłości, ale wciąż jestem 12.04 :)

1
Możesz użyć root_disk=$(findmnt -n -o SOURCE /)zamiast rurek do grepowania i cięcia.
— mivk

NIE RÓB TO, ŻE BĘDZIE SIĘ USZKODZIĆ SWÓJ SYSTEM PLIKÓW. Usunąłem, a następnie dodałem ponownie, uninit_bgco prowadzi do uszkodzenia metadanych i automatycznego ponownego montażu tylko do odczytu przy następnym uruchomieniu ( ext4_mb_generate_buddy:757: group 1, block bitmap and bg descriptor inconsistent: 3701 vs 3700 free clustersrodzaj komunikatów o błędach). Powodem jest to, że tune2fsbezpośrednio modyfikuje dysk pod stopami jądra, a kiedy jądro przechodzi do aktualizacji bgmetadanych, w połowie przypadków faktycznie uszkadza metadane! dolny wiersz: identyfikator UUID systemu plików nie może być bezpiecznie zmieniony bez prawidłowego odmontowania systemu plików.
— Eric

6

Dla XFS patrz man xfs_admin

xfs_admin -U {uuid} {device}

{Uuid} można „wygenerować”, aby uzyskać nowy UUID.

Zobacz reiserfs man tunefs.reiserfs

tunefs.reiserfs -i {uuid} {device}

W przypadku btrfs wydaje się, że uuid jest używany przez systemy plików, więc każdy węzeł musi zostać zaktualizowany. Nie ma jeszcze bezpiecznego sposobu na zrobienie tego.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.