Como altero o UUID de um disco para o que eu quiser?


29

Eu tenho uma situação única em que preciso alterar o UUID da unidade flash USB para o UUID anterior. Eu o formatei e obviamente o número mudou ...

Eu tenho a configuração do servidor ubuntu com 1TB HDD e 4GB USB flash drive para inicializar. O Grub no disco rígido está configurado para UUID, que mudou quando eu formatei a unidade usb e reinstalei o servidor ubuntu. Como não tenho monitor externo, conecto o usb ao laptop e instalo o servidor lá ... do que o movo para o hardware do servidor.

Como mencionei, meu problema é que eu preciso do usb para voltar ao UUID anterior, caso contrário, o servidor não inicializará. E não consigo obter monitor externo até segunda-feira! :)

Sei que preciso que esses arquivos sejam alterados posteriormente:

Os arquivos para os quais o UUID é mais crítico:

/boot/grub/menu.lst

/etc/fstab

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

Mas não consigo encontrar em nenhum lugar na rede informações sobre como personalizar o UUID.

Alguém?

Respostas:


37

Se você usou ext para isso:

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

A partir de man tune2fs

-U UUID

Defina o identificador universalmente exclusivo (UUID) do sistema de arquivos como UUID. O formato do UUID é uma série de dígitos hexadecimais separados por hífens, como este: c1b9d5a2-f162-11cf-9ece-0020afc76f16. O parâmetro UUID também pode ser um dos seguintes:

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

O UUID pode ser usado pelo mount (8), fsck (8) e / etc / fstab (5) (e possivelmente outros) especificando UUID = uuid em vez de um nome de dispositivo especial de bloco como / dev / hda1.


Isso funcionou! Mas eu não consigo encontrar: /etc/initramfs-tools/conf.d/resume descobri que /boot/grub/menu.lst tinha sido convertido em /boot/grub/grub.cfg

Eu tenho um /etc/initramfs-tools/conf.d/ resume no meu sistema. E grub.cfg é de fato o novo menu.lst (acho que um entrou em jogo com o novo grub2.
Rinzwind

Não importa o que eu tente, recebo um erro ao tentar definir meu próprio UUID (tune2fs: formato UUID inválido). Existe uma ordem específica para as coisas?
Andrew

tun2fs não está funcionando no meu disco ZFS gpt, o que faço lá?
Brian Thomas

Procurando a resposta para o XFS (xfs_admin), sugiro procurar um zfs_admin. Mas o zfs Solaris não é ?! Como você vê o Ubuntu sendo capaz de ajudar aqui?
Rinzwind

14

Sei que essa é uma pergunta antiga, mas descobri que houve uma nova alteração, e foi isso que o Google me procurou, então postarei a resposta que encontrei aqui.

quando tentei alterar o uuid do meu sistema de arquivos raiz (para um começo bem conhecido e um sufixo de número de série) no novo ubuntu 14.04, descobri com meu horror o tune2fs relatado: Não posso fazer isso em sistemas de arquivos montados. Eu dependo de poder usar uma imagem de modelo com um uuid conhecido e alterar cada instalação para um uuid serializado. Achei que o problema não era intransponível.

Há um sinalizador que precisa ser desativado, para permitir alterações de uuid montado com o novo tune2fs. é assim que meu processo era:

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

Obrigado. Poderia ser útil no futuro, mas eu ainda estou em 12,04 :)

11
Você pode usar em root_disk=$(findmnt -n -o SOURCE /)vez de tubulação para grep e cut.
mivk 7/04

NÃO FAZER ISSO OU VOCÊ CORROMPIRÁ SEU SISTEMA DE ARQUIVOS. Eu removi e adicionei novamente uninit_bge isso levou à corrupção de metadados e remontagem automática somente leitura na próxima inicialização ( ext4_mb_generate_buddy:757: group 1, block bitmap and bg descriptor inconsistent: 3701 vs 3700 free clusterstipo de mensagens de erro). O motivo é que tune2fsmodifica diretamente o disco, sob os pés do kernel e quando o kernel atualiza os bgmetadados, metade das vezes ele realmente corrompe os metadados! linha inferior: o UUID do sistema de arquivos não pode ser alterado com segurança sem desmontar adequadamente o sistema de arquivos.
Eric

6

Para xfs, consulte man xfs_admin

xfs_admin -U {uuid} {device}

{uuid} pode ser 'generate' para obter apenas um novo uuid.

Para reiserfs, consulte man tunefs.reiserfs

tunefs.reiserfs -i {uuid} {device}

Para o btrfs, parece que o uuid é usado em todos os sistemas de arquivos, para que cada nó precise ser atualizado. Ainda não há uma maneira segura de fazer isso.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.