GUID 更改和分区表对数据的影响

GUID 更改和分区表对数据的影响

我正在为有两个不同磁盘的人修理一台计算机。填充和分区如下:

  1. 多个分区上充满了多个操作系统
  2. 是具有单个分区(即未分区)的内部数据驱动器

现在不幸的是数据驱动器是获取分区表的驱动器。

  • 我的理解是,他们首先安装 Windows,然后安装 arch linux,但由于他们将数据驱动器插入,最终导致错误的驱动器获取分区表。
  • 他们好几个月都没有注意到,继续在 Windows 上并排安装 arch linux,直到最近当他们拔掉数据驱动器时才注意到分区表消失了。
  • 在尝试复制然后删除分区表之前我遇到的问题是,我没有空间提前备份数据以防万一

我的问题:

所以我很好奇在磁盘之间复制分区表然后通过重置/随机化 GUID 使两个磁盘都可用的一般过程是否安全并且独立于所有现有数据?

sgdisk -R=/dev/sdb /dev/sda
sgdisk -G /dev/sdb

sgdisk我从这个答案中得到了两个命令:https://unix.stackexchange.com/a/60393/173317

设置细节

结果lsblk -fa

NAME   FSTYPE LABEL           UUID                                             MOUNTPOINT
sda                                                                
├─sda1                                                             
└─sda2 ntfs   COMPUTER        16 digit alpha numeric code
sdb                                                                
├─sdb1 ntfs   System Reserved 16 digit alpha numeric code                     
├─sdb2 ntfs                   16 digit alpha numeric code                     
├─sdb3 ntfs                   16 digit alpha numeric code                     
├─sdb4                                                             
├─sdb5 swap   SWAP            8 digits-4 digits-4 digits-4 digits-12 digits     [SWAP]
├─sdb6 ext4   BOOT            8 digits-4 digits-4 digits-4 digits-12 digits     /boot
├─sdb7 ext4   ROOT            8 digits-4 digits-4 digits-4 digits-12 digits     /
└─sdb8 ext4   HOME            8 digits-4 digits-4 digits-4 digits-12 digits     /home
sr0   

结果parted -l

Model: ATA ST3500320AS (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                  Flags
1      17.4kB  1018kB  1000kB                                     bios_grub
2      1049kB  500GB   500GB   ntfs         Basic data partition  msftdata


Model: ATA ST2000DX001-1CM1 (scsi)
Disk /dev/sdb: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system     Flags
1      1049kB  106MB   105MB   primary   ntfs            boot
2      106MB   107GB   107GB   primary   ntfs
3      107GB   107GB   472MB   primary   ntfs            diag
4      107GB   2000GB  1893GB  extended                  lba
5      107GB   116GB   8590MB  logical   linux-swap(v1)
6      116GB   117GB   1074MB  logical   ext4            boot
7      117GB   139GB   21.7GB  logical   ext4
8      139GB   192GB   53.7GB  logical   ext4

结果fdisk -l

Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 8 digits-4 digits-4 digits-4 digits-12 digits

Device     Start       End   Sectors   Size Type
/dev/sda1     34      1987      1954   977K BIOS boot
/dev/sda2   2048 976771071 976769024 465.8G Microsoft basic data


Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 10 alpha numeric (hex) digits

Device     Boot     Start        End    Sectors  Size Id Type
/dev/sdb1  *         2048     206847     204800  100M  7 HPFS/NTFS/exFAT
/dev/sdb2          206848  208795647  208588800 99.5G  7 HPFS/NTFS/exFAT
/dev/sdb3       208795648  209717247     921600  450M 27 Hidden NTFS WinRE
/dev/sdb4       209717248 3907026943 3697309696  1.7T  f W95 Ext'd (LBA)
/dev/sdb5       209719296  226496511   16777216    8G 82 Linux swap / Solaris
/dev/sdb6  *    226498560  228595711    2097152    1G 83 Linux
/dev/sdb7       228597760  271032319   42434560 20.2G 83 Linux
/dev/sdb8       271034368  375891967  104857600   50G 83 Linux

从家里运行sgdisk -p和数据驱动器的根目录运行都不会返回任何内容。

答案1

你应该对 GUID 没问题磁盘但要小心。分区和文件系统的 UUID 更常用,交换它们可能很危险。 GUID 通常由引导加载程序用来识别磁盘类型/用途(Windows、FreeBSD、CoreOS Linux 等)。根据你的描述,应该是安全的。为了更加安全,请将分区表备份到 USB 驱动器,以便在需要时恢复它们。 ( sgdisk -b)。这是因为编辑分区表不会修改数据块,只会修改它们所在位置的边界。

要详细了解分区/文件系统的 UUID:

文件系统的 UUID 通常可用于识别 Linux 系统上的引导设备。例如:

BOOT_IMAGE=/vmlinuz-4.4.14-200.fc22.x86_64 root=/dev/mapper/f20-root ro rd.lvm.lv=f20/root vconsole.font=latarcyrheb-sun16 rd.luks.uuid=luks-8cf2f2dc-5a3d-4cb4-9c09-e036b3812eac rd.lvm.lv=f20/swap rhgb quiet LANG=en_US.UTF-8

如果更改该磁盘上的 UUID,事情就会变得混乱。另一个事情可能变得不稳定的地方分割事情的一面在于/etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri Dec 20 18:47:10 2013
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
 /dev/mapper/f20-root    /                                           ext4   defaults,x-systemd.device-timeout=0 1 1
UUID=44450fe5-24d0-468b-b20b-10c0127308dd /boot                      ext4   defaults        1 2
/dev/mapper/f20-home    /home                                        ext4   defaults,x-systemd.device-timeout=0 1 2
/dev/mapper/f20-swap    swap                                         swap   defaults,x-systemd.device-timeout=0 0 0

要获得更好的调查,请先运行:

 lsblk -fa

这将向您显示所有 UUID 信息,以便您可以根据需要进行交换。

相关内容