Linux 命令用于从实时 CD 查看计算机上的其他驱动器/分区

Linux 命令用于从实时 CD 查看计算机上的其他驱动器/分区

我朋友的电脑因为文件系统损坏而崩溃了。但是她需要系统中的文件,因此重新安装不起作用,因为我们仍然有办法恢复文件。

我解决这个问题的方法是从 USB 启动 Helix(Ubuntu 发行版)的实时版本,运行命令dd以阻止将 Windows 分区复制到外部驱动器,然后使用 foremost 尽可能多地恢复。

无论如何,我试图在互联网上找到该命令,但无济于事。有人知道查看驱动器上所有分区的命令吗?请记住,我正在尝试从 Live Helix CD 查看它。

答案1

简短的回答是?Linux 本身就可以用来做你想做的事情。列出块级设备和分区的最基本命令是lsblkcat /proc/partitions但如果你没有安装,你也可以解释输出lsblk。但也许你需要为此目的寻找合适的 Live CD。这运行时 Live CD看起来效果不错。这个也一样Ubuntu 救援混音 CD. 但是如果你将驱动器本身连接到真正的 Linux 设置。

更长的答案是?我写了一篇关于如何检测连接的块级设备并安装它们的长篇解释,以防您或其他人想要走这条路。我觉得在处理像数据恢复这样棘手的事情时,了解系统工作原理的基本原理总是更好的。

因此,我相信您正在寻找的基本 Linux/Unix 命令是查看设备上的所有分区lsblklsblk; 列出块设备。例如,这是我用于开发和测试的 Ubuntu Linux 虚拟机上的输出:

NAME                          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                             8:0    0    32G  0 disk 
├─sda1                          8:1    0   243M  0 part /boot
├─sda2                          8:2    0     1K  0 part 
└─sda5                          8:5    0  31.8G  0 part 
  ├─sandbox--vg-root (dm-0)   252:0    0  27.8G  0 lvm  /
  └─sandbox--vg-swap_1 (dm-1) 252:1    0     4G  0 lvm  [SWAP]
sr0                            11:0    1  1024M  0 rom  

这可能看起来令人困惑,但如果您明白它向您显示的是设备列表以及设备上的分区,您就可以更轻松地解释正在发生的事情。例如,查看此输出,您可以看到它sda5上面有两个不同的分区:sandbox--vg-root/dm-0sandbox--vg-swap_1/ dm-1。由于sandbox--vg-root/dm-0是两个分区中较大的一个,我们可以放心地假设它是主分区。如果我想从sandbox--vg-root/恢复数据dm-0,我可以通过运行 mount 命令在 Linux 中挂载它。

现在,假设lsblk您的 Live CD 上没有安装该工具。那么没问题:然后只需通过运行以下命令直接查看可用分区列表:

cat /proc/partitions

来自我的 Ubuntu Linux 测试虚拟机的示例输出如下:

  11        0    1048575 sr0
   8        0   33554432 sda
   8        1     248832 sda1
   8        2          1 sda2
   8        5   33302528 sda5
 252        0   29106176 dm-0
 252        1    4194304 dm-1

dm-0现在在这种情况下,和并不那么清楚dm-1,但可以公平地假设它们是您正在寻找的分区,通过推断它们直接跟随sda5并且的总大小反映了和sda5的总和。dm-0dm-1

完成后,我们现在知道我们要挂载sandbox--vg-root/ dm-0。在可写的 Linux 环境中,您可以执行以下操作。首先,创建一个要挂载卷的目录;这将~/recover_mount在您的主目录中创建:

mkdir ~/recover_mount/

然后你可以像这样安装设备~/recover_mount/

sudo mount /dev/dm-0 ~/recover_mount/

完成后,如果您运行ls -la ~/recover_mount/,您将能够轻松访问该驱动器上主分区的所有内容。

但这一切都假设您正在从另一台 Linux 机器上安装 Linux 分区。如果您使用的是 Linux 但想要安装 Windows 分区,则可能会变得更加棘手。在最佳情况下,我们可以假设 Windows 磁盘是 NTFS,因此可以像这样安装它:

sudo mount -t ntfs /dev/dm-0 ~/recover_mount/

注意-t的设置ntfs。或者你可能需要将其更改为ntfs-3g如下形式:

sudo mount -t ntfs-3g /dev/dm-0 ~/recover_mount/

但最重要的是,您的 Linux Live CD 需要支持 NTFS。大多数现代内核默认支持 NTFS。但说实话,如果您真的想在这种情况下恢复数据,最好从 Windows 机器上移除驱动器,并将其连接到一个可以运行的 Linux 系统(而不是 Live CD),然后尝试按照上述方法操作。

相关内容