如何从现在的外部硬盘驱动器读取/装载完整的Ubuntu卷

昨天我决定将我的笔记本电脑硬盘升级到SSD。 我以前在它附带的硬盘驱动器上运行Ubuntu 14.04。 我在SSD上安装了Ubuntu 14.10。

我想挂载旧硬盘,以便我可以复制我的所有文件。 所以我购买了一个shell,让我像对待外置USB驱动器一样对待它。 我将硬盘放入机箱并将其插入。它被检测到并且可以看到所有卷。 但它只安装了启动卷以进行读/写。

硬盘为750GB,SSD为120GB。 当我在“磁盘”实用程序中检查它时,我看到两个硬盘驱动器,并且可以很容易地分辨出两者之间的区别。 当我检查硬盘时,我看到:分区1 Ext2(启动卷),扩展分区2和分区5 LVM2 PV。

很明显它也可以看到音量。 它报告磁盘没问题,但有一个坏扇区。 驱动器未加密。 我不确定为什么它显示两个相同大小的卷。 可能与它是一个LVM卷有关。

如何让它让我从旧的Ubuntu安装中读取文件?

$ sudo fdisk -l Disk /dev/sda: 223.6 GiB, 240057409536 bytes, 468862128 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: dos Disk identifier: 0x7f79a18e Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 499711 497664 243M 83 Linux /dev/sda2 501758 468860927 468359170 223.3G 5 Extended /dev/sda5 501760 468860927 468359168 223.3G 8e Linux LVM Disk /dev/mapper/ubuntu--vg-root: 215.6 GiB, 231479443456 bytes, 452108288 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 Disk /dev/mapper/ubuntu--vg-swap_1: 7.8 GiB, 8317304832 bytes, 16244736 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 Disk /dev/sdb: 596.2 GiB, 640135028736 bytes, 1250263728 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: dos Disk identifier: 0x0004f632 Device Boot Start End Sectors Size Id Type /dev/sdb1 * 2048 499711 497664 243M 83 Linux /dev/sdb2 501758 1250263039 1249761282 596G 5 Extended /dev/sdb5 501760 1250263039 1249761280 596G 8e Linux LVM 

您必须安装LVM分区。 如果物理卷和/或逻辑卷具有相同的名称,则可能会造成混淆……

扫描系统以查找LVM卷,并在输出中标识卷

 sudo vgscan 

你会看到类似的东西

使用元数据类型lvm2找到卷组“fedora”

您应该看到两个卷组

激活(旧)卷组

 sudo vgchange -ay fedora 

将“fedora”更改为您的卷组;)

找到具有旧ubuntu安装的逻辑卷/分区

 sudo lvs 

要么

 sudo lvdisplay 

要么

 ls /dev/fedora 

再次,将fedora更改为您的卷组名称

挂载逻辑卷

 sudo mount /dev/fedora/home /mnt 

并……

我知道只有一个图形,system-config-lvm

 sudo apt-get install system-config-lvm sudo system-config-lvm 

我有这个问题,并从这个Ubuntu论坛主题找到了解决方案。 如果其他人有这个问题和/或该链接将来死亡,我会提供进一步的细节。

系统细节

在主服务器上运行Ubuntu 16.04。 我有2个内部驱动器(SDA = Ubuntu 16.04与Grub,SDB = Windows 10)。 我还有一台带有Ubuntu 14.04的内部SATA驱动器来自不同的机器,我决定使用SATA-to-USB外部底座安装,随后将该磁盘安装在SDC上; 我将此驱动器称为“delta”(使用sudo lsblksudo fdisk -l查看这些,或者从Dash中选择启动GUI“Disks”)

问题

只需查看Nautilus(文件GUI),我就可以在连接增量驱动器时看到255 MB的卷,但这是分区1主启动记录(Linux可启动; EXT2)。 查看磁盘GUI很明显我有一个1,000 GB的扩展分区(partition2)和Partition5,它是1,000 GB LVM2物理卷,但没有安装此分区的选项。

固定

  • 第一次运行

     $ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "ubuntu-vg" using metadata type lvm2 Found volume group "ubuntu-vg" using metadata type lvm2 

    此输出的问题是我的主驱动器和此辅助“delta”驱动器都显示相同的卷组名称ubuntu-vg ,这会导致一些冲突并使得难以区分一个。 所以我们需要改变其中一个。

  • 拔下辅助(delta)驱动器。 如果它是内置的,你需要关闭来执行此操作,因为我正在使用一个扩展坞,我只需将其关闭。

  • 重启后,重新运行:

     $ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "ubuntu-vg" using metadata type lvm2 
  • 跑:

     sudo vgrename /dev/ubuntu-vg /dev/ubuntu-vg-primary 

    选择你想要的任何新名称,我选择在这里附加-primary

  • 现在关闭并重新连接辅助和重新启动,或者只是在我使用外部扩展坞时连接驱动器。

  • 再次运行:

     $ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "ubuntu-vg-primary" using metadata type lvm2 Found volume group "ubuntu-vg" using metadata type lvm2 

    这是我们想要看到的; 两个唯一的卷组名称。

  • 要激活辅助(增量)驱动器卷组,请运行:

     $ sudo vgchange -ay ubuntu-vg 2 logical volume(s) in volume group "ubuntu-vg" now active 2 logical volume(s) in volume group "ubuntu-vg-primary" now active 
  • 如果您还没有安装点,例如:

     sudo mkdir -p /mnt/delta/ 
  • 使用户拥有的挂载点:

     sudo chown $(id -u):$(id -g) /mnt/delta/ 

重要说明:

此时,您的系统将无法重新启动到Ubuntu,或者它将尝试加载与“辅助”驱动器对应的Ubuntu版本; 在引导时,默认/标准是从标识为“ubuntu-vg”的卷组加载。 为了处理这种情况,我继续做了以下事情:

 $ sudo vgscan 2 logical volume(s) in volume group "ubuntu-vg" now active 2 logical volume(s) in volume group "ubuntu-vg-primary" now active $ sudo vgchange -ay ubuntu-vg $ sudo vgrename /dev/ubuntu-vg /dev/ubuntu-vg-secondary $ sudo vgscan 2 logical volume(s) in volume group "ubuntu-vg-secondary" now active 2 logical volume(s) in volume group "ubuntu-vg-primary" now active $ sudo vgchange -ay ubuntu-vg-primary $ sudo vgrename /dev/ubuntu-vg-primary /dev/ubuntu-vg $ sudo vgscan 2 logical volume(s) in volume group "ubuntu-vg-secondary" now active 2 logical volume(s) in volume group "ubuntu-vg" now active 

最后我们可以安装:

 sudo mount /dev/ubuntu-vg-secondary/root /mnt/delta/ 

此时,您可以在Nautilus中导航到“计算机”,然后导航到/ mnt / delta /并查看外部驱动器的根目录。 您可以快速将书签添加到此位置,以便您轻松访问它。 您可以(小心)继续备份现有的/ etc / fstab(到/etc/fstab.bak)并修改现有的fstab以尝试将此设备/位置自动挂载到挂载点。 确保在关闭或重新启动之前测试您的fstab。

使用sudo blkid我能够找到所有相关的UUID,设备,分区,卷组信息以及FS类型,并使用此信息将mount条目指令添加到我的fstab。 例如:

 UUID=d7556cd2-67b3-4fb4-acc8-1e33dd0eb040 /mnt/delta ext4 defaults 0 2 

使用sudo mount -a测试(没有输出意味着好;任何输出都意味着在尝试重启之前应该处理的错误,否则你可能无法正确地重启你的操作系统)。

即使数据文件夹已加密,也有很多方法可以复制数据。 您所要做的就是启动旧驱动器并将要复制的数据复制到外部介质上并返回到新介质。 您也可以尝试使用附带的“备份”实用程序,这在我的经验中非常有效。

说完所有这些之后,如果你在升级之前问过我,我已经为你提供了完全不同的建议。 我已经指出14.04是一个LTS版本,升级到14.10只会让你每六个月升级一次,我觉得这很麻烦。

我本来建议你下载clonezilla ,然后直接将你的旧硬盘克隆到新媒体,并继续使用你已经安装的安装而不需要重新开始。 当然你仍然可以做到这一点,但是现在你可能已经下定决心坚持使用新的安装。