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?

muru
fonte

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.

Rinzwind
fonte
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:~#
kvm-user420
fonte
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.

Sylwester
fonte