Mam fedora gościa OS w VMware. Chcę rozwinąć /boot
partycję, więc dodaję inny dysk wirtualny do tej maszyny wirtualnej i próbuję sklonować dysk.
Po dd if=/dev/sda1 of=/dev/sdb1
, blkid
donoszą, że / dev / sda1 i / dev / sdb1 mają tę samą UUID / GUID.
To dziwne, że we wszechświecie są 2 takie same UUID, jak zmienić jeden z nich na inny UUID?
Zaktualizuj 25.01.2017
Temat zmieniony, UUID oznacza tutaj UUID systemu plików, a nie UUID partycji.
Ponieważ jest to UUID systemu plików, narzędzia specyficzne dla systemu plików są potrzebne do zmiany UUID lub użyj hexeditora do modyfikacji surowych danych na dysku ( NIEBEZPIECZEŃSTWO, nie zalecane, chyba że wiesz, co robisz ).
linux
filesystems
cloning
uuid
LiuYan 刘 研
źródło
źródło
Odpowiedzi:
Aby wygenerować losowy nowy UUID, można użyć:
Rzeczywista zmiana UUID zależy od systemu plików.
Zakładając system plików z rodziny rozszerzeń
Lub jeśli masz pewność, że uuidgen zadziała:
Zakładając system plików btrfs
Identyfikator UUID jest przechowywany w superbloku, więc kopia bajt po bajcie systemu plików będzie miała ten sam identyfikator UUID.
źródło
Posługiwać się:
jeśli jest to system plików ext , lub
jeśli jest to system plików XFS .
Powodem, dla którego druga partycja ma ten sam UUID jest to, że
dd
po prostu kopiuje dane z jednego pliku do drugiego (dd if=/dev/sda1 of=/dev/sdb1
=cat /dev/sda1 > /dev/sdb1
);dd
nie wie, co to jest partycja ani jak wygenerować UUID, więc po prostu skopiował wszystkie dane takie, jakie są, w tym UUID, który jest przechowywany w superbloku systemu plików w pobliżu początku partycji.Nawiasem mówiąc,
myślę też, że UUID (Universally Unique IDentifier) to dziwna nazwa. Powinien nazywać się PGUID (prawdopodobnie globalnie unikatowy identyfikator), a jeszcze lepiej - tylko ARLN (rozsądnie duża liczba).
źródło
Oprócz ext2 / ext3 / ex4 i xfs możesz także zmienić UUID następującego systemu plików lub urządzenia blokowego.
Zamiana
swaplabel -U $NEW_UUID
Oprogramowanie RAID (MD Raid)
W przypadku MD RAID należy najpierw zatrzymać RAID, a następnie zaktualizować identyfikator UUID podczas ponownego montażu. Tak więc, jeśli macierz RAID jest zamontowana
/
, musisz zaktualizować UUID w trybie offline - użyj płyty CD na żywo, aby to zrobić.mdadm --stop $RAID_DEVICE
mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...
Przykład:
mdadm --stop /dev/md127
mdadm --assemble /dev/md127 --update=uuid --uuid=2A1D2A1D-2A1D-2A1D-2A1D-2A1D2A1D2A1D /dev/sda2 /dev/sdb2
Po aktualizacji UUID może być konieczna aktualizacja
grub.cfg
(rd.md.uuid=$NEW_UUID
wlinux/linuxefi/linux16
wierszu poleceń) i / lubfstab
i / lubmdadm.conf
i / lubupdate-initramfs
(rodzina Debian) i / lubdracut --force
(rodzina Red Hat), aby można było pomyślnie uruchomić następnym razem.LUKS (cryptsetup)
cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE
Przykład:
cryptsetup luksUUID --uuid=e0c0e0c0-e0c0-e0c0-e0c0-e0c0e0c0e0c0 ~/encrypted-LUKS.loop
FAT / NTFS / exFAT
To kolejna historia tutaj
obecnie nie ma narzędzi do modyfikowania UUID systemu plików tych systemów plików(Zobacz odpowiedź Reichharta -mlabel
narzędzie), ale możemy zmodyfikować surowe dane na dysku, aby to zrobić.OSTRZEŻENIE: modyfikowanie surowych danych na dysku jest niebezpieczne i może spowodować utratę danych bez starannej obsługi.
Oto szczegółowe kroki, aby zmodyfikować surowe dane na dysku przy użyciu
hexedit
.blkid
, zapisz UUID systemu plików na papierze lub zapamiętaj go. Łańcuch UUID FAT / exFAT wygląda1122-3344
, ciąg UUID NTFS1122334455667788
.Otwórz urządzenie partycji za pomocą hexedit
hexedit <partition device such as /dev/sda1>
blkid
zgłoszony1234-ABCD
, a następnie wyszukajCDAB3412
), aby wyszukać dane UUID na dysku.blkid
aby zweryfikować UUID.grub.cfg
i / lub wfstab
celu ponownego uruchomienia komputera.fsck <partition device such as /dev/sda1>
i zobacz komunikat „Istnieją różnice między sektorem rozruchowym a jego kopią zapasową” . Aby go rozwiązać, wybierz „1) Skopiuj oryginał do kopii zapasowej” , a jeśli zostaniesz zapytany „Czy wykonać zmiany? (T / n)” , naciśnij y.źródło
mkfs.exfat -i 01234567 /dev/partitionname
miejsca, w którymmkfs.exfat
polecenie zostało zainstalowane przez pakiet exfat-utils w Fedorze Linux. Może powinieneś dodać to do swojej odpowiedzi, ponieważ wariant hexedit jest dość niebezpieczny!ntfslabel
narzędzie. askubuntu.com/questions/642591/…W przypadku XFS użyj:
xfs_admin -U <uuid> <device>
Służy
xfs_admin -u <device>
do wyświetlania UUID (zwróć uwagę na opcję małych liter, w porównaniu do opcji wielkich liter). W innym poście na temat U&L wskazanoblkid
polecenie przeglądania wszystkich lub niektórych identyfikatorów UUID w systemie.źródło
Częściowa odpowiedź dla VFAT
W systemach plików ext * i xfs są już dobre odpowiedzi. Ale w przypadku VFAT zdecydowanie zalecam użycie mlabel pakietu mtools. Korzystanie z edytorów szesnastkowych jest NIEBEZPIECZNE.
Użyj czegoś takiego, aby utworzyć nowy identyfikator UUID:
źródło
mlabel -n -i /dev/sdb3 ::
BTRFS
Uruchomienie
btrfsck
jest zalecane, ponieważ zmiana UUID w BTRFS nie jest operacją atomową.źródło
W przypadku systemu plików NTFS sprawdź ten wątek, aby uzyskać szczegółowe informacje.
Podsumowanie:
źródło
W Fedorze 27 odkryłem, że kolejność argumentów odgrywa kluczową rolę ... Musisz najpierw napisać urządzenie, w przeciwnym razie identyfikator UUID nie zostanie zmieniony. Na przykład
źródło
-U
przeddevice
.Aby zmienić wynikową komendę dd, powielony fragment dysku UUID / s - Użyj GParted.
Z interfejsu użytkownika GParted wybierz dysk, wybierz partycję, odmontuj partycję. Z „Folderu partycji” wybierz „NOWY UUID”, powtarzaj, aż wszystkie UuID / s zduplikowanych partycji na dysku dd zostaną oznaczone do wymiany. W przypadku dysków rozruchowych nie zastępuj identyfikatora użytkownika partycji UEFI.
Przejrzyj wybraną literę dysku i partycję / partycje - Wszystko w porządku? ...
Kliknij ikonę „Zastosuj wszystkie operacje” w interfejsie użytkownika GParted.
W przypadku dysków rozruchowych edytuj plik / etc / fstab UUID = ciąg / si punkt montowania:
źródło