GNU/Linux >> Linux の 問題 >  >> Linux

ファイルシステムの UUID (2 つの同じ UUID) を変更するには?

ランダムな新しい UUID を生成するには、以下を使用できます:

$ uuidgen

実際に UUID を変更するには、ファイル システムに依存します。

ext-family ファイルシステムを想定

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

または、uuidgen が機能すると確信している場合:

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

btrfs ファイルシステムを想定

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

UUID はスーパーブロックに保存されるため、ファイルシステムのバイトごとのコピーは同じ UUID を持つことになります。


用途:

tune2fs -U random /dev/sdb1

内線の場合 ファイルシステム、または

xfs_admin -U generate /dev/sdb1

xfs の場合 ファイルシステム。

2 番目のパーティションが同じ UUID を持つ理由は、dd のためです。 あるファイルから別のファイルにデータをコピーするだけです (dd if=/dev/sda1 of=/dev/sdb1 =cat /dev/sda1 > /dev/sdb1 ); dd パーティションが何であるか、または UUID を生成する方法がわからないため、UUID を含むすべてのデータをそのままコピーしただけで、パーティションの開始近くにある filesystem スーパーブロックに格納されています。

ところで、
また、UUID (Universally Unique IDentifier) も変な名前だと思います。これは、PGUID (おそらくグローバルに一意の識別子) と呼ばれるか、単に ARLN (合理的に大きな数) と呼ばれる必要があります。


ext2 /ext3 / ex4 と xfs のほかに、次のファイル システムまたはブロック デバイスの UUID または GPT パーティションの PARTUUID を変更することもできます。

スワップ

swaplabel -U $NEW_UUID

ソフトウェア RAID (MD RAID)

MD RAID の場合、最初に RAID を停止してから、再組み立て時に UUID を更新する必要があります。したがって、RAID が / にマウントされている場合 、停止できません。オフライン モードで UUID を更新する必要があります -- ライブ CD/USB を使用してください。

<オール>
  • mdadm --stop $RAID_DEVICE
  • mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...
  • 例:

    <オール>
  • mdadm --stop /dev/md127
  • mdadm --assemble /dev/md127 --update=uuid --uuid=2A1D2A1D-2A1D-2A1D-2A1D-2A1D2A1D2A1D /dev/sda2 /dev/sdb2
  • UUID の更新後、grub.cfg の更新が必要になる場合があります (rd.md.uuid=$NEW_UUID linux/linuxefi/linux16 で コマンドライン) および/または fstab および/または mdadm.conf および/または update-initramfs (Debian ファミリー) および/または dracut --force (Red Hat ファミリ) を使用して、次回正常に起動できるようにします。

    LUKS (cryptsetup)

    cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE

    例:

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

    NTFS ファイル システム

    ntfslabel があります NTFSファイルシステムのUUIDを変更するユーティリティ(ntfs-3gに感謝)。 abchk1234 の回答を参照してください。

    --new-half-serial の代わりに NTFS ファイル システムの UUID 全体を変更したい場合 、--new-serial を使用します オプション。

    例:

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

    FAT / exFAT ファイル システム

    これは別の話です。現在、これらのファイルシステムのファイルシステム UUID を変更するユーティリティはありません (reichhart の回答を参照 -- mlabel ツール) ですが、これを行うためにディスク上の生データを変更できます。

    警告、ディスク上の生データを変更することは危険です。慎重に操作しないとデータが失われる可能性があります。

    hexedit を使用してディスク上の生データを変更する詳細な手順は次のとおりです。 .

    <オール>
  • blkid 、ファイルシステムのUUIDを紙に書き留めるか、覚えておいてください。 FAT / exFAT の UUID 文字列は 1122-3344 のようになります 、NTFS の UUID 文字列は 1122334455667788 のようになります .

  • hexedit を使用してパーティション デバイスを開きます

    hexedit <partition device such as /dev/sda1>

  • / を押します 、UUID を逆の順序で入力します (blkid の場合) 報告された 1234-ABCD 、次に CDAB3412 を検索します ) でディスク上の UUID データを検索します。

  • UUID が見つかったら、それらを変更し、F2 を押します 保存して終了します。

  • blkid UUID を確認します。

  • UUID を変更したら、grub.cfg を更新する必要がある場合があります および/または fstab 次回正常に起動できるようにします。

  • fsck <partition device such as /dev/sda1> を実行 「ブート セクタとそのバックアップには違いがあります」を参照してください。 メッセージ。それを解決するには、「1) オリジナルをバックアップにコピー」を選択します 、「変更を行いますか? (y/n)」と尋ねられた場合 y を押します .

  • GPT パーティションの PARTUUID

    短編 :GPT パーティションの PARTUUID に触れる必要があるとは思いもしませんでした。今まで、Windows を小さなディスクから大きなディスクに移行しようとすると、Windows は大きなディスクで起動できず、自動的に修復することさえできませんでした。その理由は、NTFS ファイル システムの UUID を元の UUID に変更するだけでは、Windows + UEFI では十分ではなく、GPT パーティションの PARTUUID も変更する必要があるためです - PARTUUID の問題。 (PARTUUID を元のものに変更した後、Windows は大容量ディスクから正常に起動しました。)

    gdisk を使用して GPT パーティションの PARTUUID を変更する方法を示すため、askubuntu.com には既に回答があります。

    fdisk の現在のバージョン (編集時の Fedora 32 リポジトリでは 2.35.2) from util-linux もエキスパート モードで実行できます。実際、util-linux v2.23 以降では、fdisk は GPT 対応になっています。

    util-linux fdisk を使用して PARTUUID を変更する例を次に示します。 ユーティリティ:

    # 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. Linuxでホスト名を変更する方法

    2. 「xfs_admin」コマンドを使用して XFS ファイルシステムのパラメーターを変更する方法

    3. CentOS / RHEL :デバイスまたはファイルシステムの UUID を見つける方法

    1. ルートパスワードを変更するにはどうすればよいですか?

    2. Debianでホスト名を変更する方法

    3. CentOS / RHEL :ファイルシステムの UUID を変更する方法

    1. CentOS/RHEL でファイルシステムのラベルを変更する方法

    2. ファイルシステムのテストを行う方法は?

    3. ファイルシステムの UUID を見つける方法