GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit UUID souborového systému (2 stejné UUID)?

Pro vygenerování náhodného nového UUID lze použít:

$ uuidgen

Skutečná změna UUID závisí na systému souborů.

Za předpokladu souborového systému ext-family

# tune2fs -U <output of uuidgen> /dev/sdb1

Nebo pokud jste si jisti, že uuidgen bude fungovat:

# tune2fs -U $(uuidgen) /dev/sdb1

Za předpokladu souborového systému btrfs

# btrfstune -U $(uuidgen) /dev/sdb1

UUID je uloženo v superbloku, takže kopie souborového systému bajt po bajtu bude mít stejné UUID.


Použijte:

tune2fs -U random /dev/sdb1

pokud se jedná o ext souborový systém nebo

xfs_admin -U generate /dev/sdb1

pokud se jedná o xfs souborový systém.

Důvod, proč má druhý oddíl stejné UUID, je dd pouze zkopíruje data z jednoho souboru do druhého (dd if=/dev/sda1 of=/dev/sdb1 =cat /dev/sda1 > /dev/sdb1 ); dd neví, co je oddíl nebo jak vygenerovat UUID, takže prostě zkopíroval všechna data tak, jak jsou, včetně UUID, které je uloženo v superbloku filysystem poblíž začátku oddílu.

Mimochodem,
Také si myslím, že UUID (Universally Unique IDentifier) ​​je zvláštní název. Mělo by se jmenovat PGUID (možná celosvětově jedinečný identifikátor), nebo ještě lépe jen ARLN (přiměřeně velké číslo).


Kromě ext2 /ext3 / ex4 a xfs můžete také změnit UUID následujícího souborového systému nebo blokového zařízení nebo PARTUUID oddílu GPT.

Vyměnit

swaplabel -U $NEW_UUID

Softwarový RAID (md raid)

U MD RAID musíte nejprve zastavit RAID a poté aktualizovat UUID při opětovném sestavení. Pokud je tedy váš RAID připojen k / , nemůžete to zastavit, musíte aktualizovat UUID v režimu offline -- použijte k tomu živé CD/USB.

  1. mdadm --stop $RAID_DEVICE
  2. mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...

Příklad:

  1. mdadm --stop /dev/md127
  2. mdadm --assemble /dev/md127 --update=uuid --uuid=2A1D2A1D-2A1D-2A1D-2A1D-2A1D2A1D2A1D /dev/sda2 /dev/sdb2

Po aktualizaci UUID možná budete muset aktualizovat grub.cfg (rd.md.uuid=$NEW_UUID v linux/linuxefi/linux16 příkazový řádek) a/nebo fstab a/nebo mdadm.conf a/nebo update-initramfs (rodina Debian) a/nebo dracut --force (rodina Red Hat), abyste mohli příště úspěšně zavést systém.

LUKS (cryptsetup)

cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE

Příklad:

cryptsetup luksUUID --uuid=e0c0e0c0-e0c0-e0c0-e0c0-e0c0e0c0e0c0 ~/encrypted-LUKS.loop

Souborový systém NTFS

Je tam ntfslabel utility (díky ntfs-3g) pro změnu UUID souborového systému NTFS. Viz odpověď abchk1234.

V případě, že chcete změnit celé UUID souborového systému NTFS namísto --new-half-serial , použijte --new-serial možnost.

Příklad:

ntfslabel --new-serial=1122334455667788 /dev/sda3

Souborový systém FAT / exFAT

Toto je jiný příběh, v současné době neexistují žádné nástroje pro úpravu UUID souborového systému těchto souborových systémů (Viz odpověď Reichharta -- mlabel nástroj), ale můžeme k tomu upravit nezpracovaná data na disku.

UPOZORNĚNÍ, je nebezpečné upravovat nezpracovaná data na disku a bez pečlivé operace by mohlo dojít ke ztrátě dat.

Zde jsou podrobné kroky k úpravě nezpracovaných dat na disku pomocí hexedit .

  1. blkid , zapište si UUID souborového systému na papír nebo si jej zapamatujte. Řetězec UUID FAT / exFAT vypadá jako 1122-3344 , UUID řetězec NTFS vypadá jako 1122334455667788 .

  2. Otevřete zařízení oddílu pomocí hexedit

    hexedit <partition device such as /dev/sda1>

  3. Stiskněte / , zadejte UUID v opačném pořadí (pokud blkid hlášeno 1234-ABCD a poté vyhledejte CDAB3412 ) pro vyhledání dat UUID na disku.

  4. Jakmile najdete UUID, změňte je a stiskněte F2 uložit a ukončit.

  5. blkid pro ověření UUID.

  6. Jakmile je UUID upraveno, možná budete muset aktualizovat grub.cfg a/nebo fstab abyste mohli příště úspěšně zavést.

  7. Spusťte fsck <partition device such as /dev/sda1> a podívejte se na „Mezi spouštěcím sektorem a jeho zálohou jsou rozdíly“ zpráva. Chcete-li to vyřešit, vyberte "1) Kopírovat originál do zálohy" a pokud se zobrazí dotaz "Provést změny? (y/n)" stisknete y .

PARTUUID oddílu GPT

Krátký příběh :Nikdy jsem si nemyslel, že se budu muset dotknout PARTUUID oddílu GPT, až teď, když se pokouším migrovat Windows z malého disku na velký disk, Windows se nepodařilo spustit na velkém disku a nelze jej ani automaticky opravit. Důvodem je, že pro Windows + UEFI nestačí změnit UUID souborového systému NTFS na původní, ale je potřeba změnit i PARTUUID oddílu GPT - na PARTUUID záleží. (Po změně PARTUUID na původní se systém Windows úspěšně zavedl z velkého disku.)

Zde na askubuntu.com již existuje odpověď, která ukazuje, jak změnit PARTUUID oddílu GPT pomocí gdisk utility.

Aktuální verze fdisk (2.35.2 v repozitářích Fedory 32 v době úprav) z util-linux to umí také v expertním režimu, ve skutečnosti, počínaje util-linux v2.23, fdisk má povoleno GPT.

Zde je příklad změny PARTUUID pomocí util-linux fdisk nástroj:

# truncate -s 200M /tmp/file-as-a.disk 

# LANG=en_US.UTF-8 fdisk /tmp/file-as-a.disk 

Welcome to fdisk (util-linux 2.35.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xc0fc8503.

Command (m for help): g
Created a new GPT disklabel (GUID: 4CD23B97-80C5-BD42-8466-1B9476653A92).

Command (m for help): n
Partition number (1-128, default 1): 
First sector (2048-409566, default 2048): 
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-409566, default 409566): 

Created a new partition 1 of type 'Linux filesystem' and of size 199 MiB.

Command (m for help): i
Selected partition 1
         Device: /tmp/file-as-a.disk1
          Start: 2048
            End: 409566
        Sectors: 407519
           Size: 199M
           Type: Linux filesystem
      Type-UUID: 0FC63DAF-8483-4772-8E79-3D69D8477DE4
           UUID: 7265D7C3-6277-DE4B-956C-41E3BFFF8E0D

Command (m for help): w
The partition table has been altered.
Syncing disks.

# LANG=en_US.UTF-8 fdisk /tmp/file-as-a.disk 

Welcome to fdisk (util-linux 2.35.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): x

Expert command (m for help): m

Help (expert commands):

  GPT
   i   change disk GUID
   n   change partition name
   u   change partition UUID
   l   change table length
   M   enter protective/hybrid MBR

   A   toggle the legacy BIOS bootable flag
   B   toggle the no block IO protocol flag
   R   toggle the required partition flag
   S   toggle the GUID specific bits

  Generic
   p   print the partition table
   v   verify the partition table
   d   print the raw data of the first sector from the device
   D   print the raw data of the disklabel from the device
   f   fix partitions order
   m   print this menu

  Save & Exit
   q   quit without saving changes
   r   return to main menu


Expert command (m for help): u
Selected partition 1

New UUID (in 8-4-4-4-12 format): 11223344-5566-7788-9900-AABBCCDDEEFF

Partition UUID changed from 7265D7C3-6277-DE4B-956C-41E3BFFF8E0D to 11223344-5566-7788-9900-AABBCCDDEEFF.

Expert command (m for help): w
w: unknown command

Expert command (m for help): r

Command (m for help): w

The partition table has been altered.
Syncing disks.

# losetup --partscan /dev/loop101 /tmp/file-as-a.disk

# blkid /dev/loop101*
/dev/loop101: PTUUID="4cd23b97-80c5-bd42-8466-1b9476653a92" PTTYPE="gpt"
/dev/loop101p1: PARTUUID="11223344-5566-7788-9900-aabbccddeeff"

Linux
  1. Jak změnit název hostitele v Linuxu

  2. Jak změníme heslo root?

  3. Jak změnit Shell v Linuxu

  1. Jak změnit název hostitele v Debianu

  2. Jak použít příkaz „xfs_admin“ ke změně parametrů souborového systému XFS

  3. CentOS / RHEL :Jak najít UUID zařízení nebo souborového systému

  1. CentOS / RHEL :Jak změnit UUID souborového systému

  2. Jak změnit štítky souborového systému v CentOS/RHEL

  3. jak provést testování souborového systému?