ディスクのUUIDを必要なものに変更するにはどうすればよいですか?


29

usbフラッシュドライブのUUIDを以前のUUIDに変更する必要がある独特の状況があります。私はそれをフォーマットし、明らかに番号が変更されました...

1TBのHDDと4GBのUSBフラッシュドライブから起動するubuntuサーバーのセットアップをしました。hddのGrubはUUID用に構成されていますが、これはusbドライブをフォーマットし、ubuntuサーバーを再インストールすると変更されます。私は外部モニターを持っていないので、USBをラップトップに接続し、そこにサーバーをインストールします...サーバーハードウェアに移動します。

前に述べたように、以前のUUIDに戻るにはusbが必要です。そうしないと、サーバーが起動しません。そして、月曜日まで外部モニターを入手できません!:)

私はこれらのファイルを後で変更する必要があることを知っています:

UUIDが最も重要なファイル:

/boot/grub/menu.lst

/etc/fstab

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

しかし、UUIDのカスタマイズに関する情報はネット上で見つけることができません。

誰でも?

回答:


37

extを使用した場合:

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

から man tune2fs

-U UUID

ファイルシステムの汎用一意識別子(UUID)をUUIDに設定します。UUIDの形式は、次のようにハイフンで区切られた一連の16進数です c1b9d5a2-f162-11cf-9ece-0020afc76f16。UUIDパラメーターは、次のいずれかになります。

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

UUIDは、/ dev / hda1のようなブロック特殊デバイス名の代わりにUUID = uuidを指定することにより、mount(8)、fsck(8)、および/ etc / fstab(5)(およびその他)で使用できます。


うまくいきました!しかし、私は見つけることができません:/etc/initramfs-tools/conf.d/resume /boot/grub/menu.lstが/boot/grub/grub.cfgに変換されていることがわかりました

システムに/etc/initramfs-tools/conf.d/resumeがあります。そして、grub.cfgは確かに新しいmenu.lstです(新しいgrub2が登場したと思います。
Rinzwind

何を試しても、自分のUUIDを設定しようとするとエラーが発生します(tune2fs:UUID形式が無効です)。物事に特定の順序はありますか?
アンドリュー

tun2fsはZFS gptディスクで動作しません。そこで何をしますか?
ブライアントーマス

XFS(xfs_admin)の答えを見ると、zfs_adminを探すことをお勧めしますが、zfs Solarisではありませんか?!Ubuntuがここでどのように支援できると思いますか?
-Rinzwind

14

これは古い質問のようなものであることがわかりましたが、新しい変更があったことを発見しました。これがGoogleが探し出したものであるため、ここで見つけた答えを投稿します。

新しい14.04 ubuntuでルートファイルシステムのuuidを(よく知られている始まりとシリアル番号の接尾辞に)変更しようとすると、ホラーにtune2fsが報告されました:マウントされたファイルシステムにはできません。よく知られているuuidを使用してテンプレートイメージを使用し、各インストールをシリアル化されたuuidに変更できることに依存しています。問題は克服できないものではないことがわかりました。

新しいtune2fsでmount-uuidの変更を許可するには、無効にする必要があるフラグがあります。これは私のプロセスがどのように見えるかです:

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

ありがとう。将来役に立つかもしれませんが、私はまだ12.04にいます:)

1
root_disk=$(findmnt -n -o SOURCE /)パイプの代わりにgrepとcutを使用できます。
mivk

ファイルシステムを破損したり、破損したりしないでください。削除してから追加し直すuninit_bgと、メタデータが破損し、次回の起動時に読み取り専用で自動的に再マウントされます(ext4_mb_generate_buddy:757: group 1, block bitmap and bg descriptor inconsistent: 3701 vs 3700 free clustersエラーメッセージの種類)。その理由はtune2fs、カーネルの足元でディスクを直接変更し、カーネルがbgメタデータを更新すると、半分の時間で実際にメタデータが破損するためです!ボトムライン:fileysstem UUIDは、ファイルシステムを適切にアンマウントしないと安全に変更できません。
エリック

6

xfsについては man xfs_admin

xfs_admin -U {uuid} {device}

{uuid}を「生成」して、新しいuuidを取得できます。

reiserfsについては man tunefs.reiserfs

tunefs.reiserfs -i {uuid} {device}

btrfsの場合、ファイルシステム全体でuuidが使用されるため、すべてのノードを更新する必要があります。安全な方法はまだありません。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.