Como alterar o UUID do sistema de arquivos (2 mesmo UUID)?

17

Eu tenho um sistema operacional convidado fedora no VMware. Eu quero expandir a partição /boot , então adiciono outro disco virtual a essa VM e tento clonar o disco.

Depois de dd if=/dev/sda1 of=/dev/sdb1 , blkid informar que / dev / sda1 e / dev / sdb1 têm o mesmo UUID / GUID.

É estranho que haja 2 mesmos UUIDs no universo, como alterar um deles para outro valor UUID?

Atualização 2017-01-25

Assunto alterado, UUID aqui significa UUID do sistema de arquivos, não UUID da partição.

Como é o UUID do sistema de arquivos, os utilitários específicos do sistema de arquivos são necessários para alterar o UUID ou o uso do hexeditor para modificar dados brutos no disco ( PERIGOSO, não recomendado a menos que você saiba o que está fazendo). p>     

por LiuYan 刘研 04.05.2011 / 04:29

8 respostas

20

Assumindo que é um sistema de arquivos da família ext2:

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

Ou se você tiver certeza de que o uuidgen vai funcionar:

tune2fs -U 'uuidgen' /dev/sdb1

O UUID é armazenado no superbloco, então uma cópia byte-by-byte do sistema de arquivos terá o mesmo UUID.

    
por 04.05.2011 / 05:07
8

Uso:

tune2fs -U random /dev/sdb1

se for um sistema de arquivos ext ou

xfs_admin -U generate /dev/sdb1

se for um sistema de arquivos xfs .

A razão pela qual a segunda partição tem o mesmo UUID é porque dd apenas copia dados de um arquivo para outro ( dd if=/dev/sda1 of=/dev/sdb1 = cat /dev/sda1 > /dev/sdb1 ); dd não sabe o que é uma partição ou como gerar um UUID, então copiou todos os dados como estão, incluindo o UUID, que é armazenado no superbloco filysystem próximo ao início da partição.

A propósito,
Eu também acho que o UUID (Universally Unique IDentifier) é um nome estranho. Deve ser chamado de PGUID (possivelmente identificador global exclusivo) ou, melhor ainda, apenas ARLN (um número razoavelmente grande).

    
por 05.02.2015 / 09:28
6

Para o XFS, use: xfs_admin -U <uuid> <device>

Use xfs_admin -u <device> para exibir um UUID (observe a opção minúscula para visualizar, versus a opção maiúscula para definir). Outro post no U & L apontou o comando blkid para visualizar todos ou alguns dos UUIDs no sistema.

    
por 03.07.2012 / 21:00
6

Além de ext2 / ext3 / ex4 e xfs, você também pode alterar o UUID do seguinte sistema de arquivos ou dispositivo de bloco.

Trocar

swaplabel -U $ NEW_UUID

Software RAID (md raid)

Para o MD RAID, você deve parar o RAID primeiro e depois atualizar o UUID durante a remontagem. Portanto, se o seu RAID estiver montado em / , você precisará atualizar o UUID no modo offline - use um CD ao vivo para fazê-lo.

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

Exemplo:

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

Depois que o UUID foi atualizado, talvez seja necessário atualizar grub.cfg ( rd.md.uuid= $ NEW_UUID na linha de comando linux / linuxefi / linux16 ) e / ou fstab e / ou mdadm.conf , então que você pode inicializar com sucesso da próxima vez.

LUKS (cryptsetup)

cryptsetup luksUUID --uuid= $ NEW_UUID $ LUKS_DEVICE

Exemplo:

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

FAT / NTFS / exFAT

Esta é outra história aqui, atualmente não há utilitários para modificar o sistema de arquivos UUID desses sistemas de arquivos, mas podemos modificar os dados brutos no disco para fazer isso.

AVISO, é perigoso modificar dados brutos no disco e pode perder dados sem uma operação cuidadosa.

Aqui estão as etapas de detalhes para modificar dados brutos no disco usando hexedit .

  1. blkid , anote o UUID do sistema de arquivos em papel ou lembre-se dele. A string UUID de FAT / exFAT se parece com 1122-3344 , a string UUID do NTFS se parece com 1122334455667788 .
  2. Abra o dispositivo de partição usando o hexedit

    hexedit <partition device such as /dev/sda1>

  3. Pressione / , insira o UUID na ordem inversa (se lsblk reportou 1122-3344 , depois procure 44332211 ) para pesquisar os dados UUID no disco.
  4. Uma vez localizado o UUID, altere-o, pressione F2 para salvar e sair.
  5. blkid para verificar o UUID.
  6. Depois que o UUID for modificado, talvez seja necessário atualizar grub.cfg e / ou fstab para que você possa inicializar com êxito na próxima vez.
por 01.02.2017 / 18:44
1

Resposta parcial para VFAT

Para sistemas de arquivos ext * e xfs, já existem boas respostas. Mas para o VFAT eu recomendo strongmente que use o mlabel do pacote mtools. O uso de editores hexadecimais é PERIGOSO.

Use algo assim para criar um novo UUID:

echo 'drive d: file="/dev/sdb3" exclusive' >>/etc/mtools.conf
mlabel -n d:
    
por 08.04.2018 / 10:17
0

No Fedora 27, descobri que a ordem dos argumentos desempenha um papel crucial ... Você precisa escrever o dispositivo primeiro, caso contrário, o UUID não será alterado. Por exemplo

tune2fs /dev/sdb1 -U random
    
por 03.03.2018 / 17:30
0

BTRFS

sudo btrfstune -u /dev/sdaX

sudo btrfstune -U 0de6bd81-7013-49a8-bdc5-d832ed209d2c /dev/sdaX

A execução btrfsck é recomendada porque a alteração do UUID no BTRFS não é uma operação atômica.

    
por 11.09.2018 / 16:17
0

Para alterar o comando dd da divisão de disco duplicada resultante UUID / s - Use GParted.

Na interface do usuário do GParted, selecione drive, selecione a partição, desmonte a partição. Na pasta 'Partition' escolha 'NEW UUID', repita até que todos os uuid / s da partição duplicada da unidade dd estejam marcados para substituição. Para discos inicializáveis, não substitua o uuid da partição UEFI.

Revise a letra da unidade selecionada e a partição / s - Tudo OK? ...

Clique no ícone "Aplicar todas as operações" na interface do usuário do GParted.
Para discos inicializáveis, edite o arquivo / etc / fstab UUID = string / se ponto de montagem / s.:

    
por 05.12.2018 / 02:33