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ś?

muru
źródło

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.

Rinzwind
źródło
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:~#
kvm-user420
źródło
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.

Sylwester
źródło