如何从物理上从另一台机器访问Linux数据?

如何从物理上从另一台机器访问Linux数据?

我的笔记本电脑出现故障,但我确信硬盘驱动器没有问题。

我想获取其中的数据,我将笔记本电脑的硬盘驱动器(使用 btrfs 文件系统打开 suse tumbleweed)连接到我的台式电脑(使用 vfat 文件系统的 ubuntu 22.04.01 LTS),它可以访问显示一些 Linux 系统目录的硬盘驱动器就在它上面(bin、boot、cdrom、dev 等、home 和其余的),但是当我浏览目录时,上面什么也没有

如何访问这些数据?我知道用户名和密码以及 root 的密码

我有勇气,这必须是某种许可或其他东西,我也有勇气,这应该就像人们谈论用 Live CD 保存数据一样,但是,是的,我不知道如何访问这些数据。

这是我的 lsblk

~ $ sudo lsblk -o +fstype | grep -v /snap/
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS                                    FSTYPE
sda      8:0    0 223,6G  0 disk                                                
├─sda1   8:1    0   512M  0 part /boot/efi                                      vfat
                                 /                                              
sdb      8:16   0 149,1G  0 disk                                                
└─sdb1   8:17   0   149G  0 part                                                crypto_LUKS
sdc      8:32   0 465,8G  0 disk                                                
└─sdc1   8:33   0 465,8G  0 part                                                crypto_LUKS
sdd      8:48   0 298,1G  0 disk                                                
├─sdd1   8:49   0   512M  0 part                                                vfat
├─sdd2   8:50   0 295,6G  0 part /media/bc/a501872f-9564-4568-a942-8b913bb93166 btrfs
└─sdd3   8:51   0     2G  0 part 

我的 open suse tumbleweed 笔记本电脑硬盘是 sdd,额外信息:sdb 和 sdc 是我的数据硬盘,它是不同的物理硬盘

聊天更新:目标文件系统是 btfrs,前 /etc/fstab 中的行是

UUID=a501872f-9564-4568-a942-8b913bb93166 / btrfs defaults 0 0
UUID=a501872f-9564-4568-a942-8b913bb93166 /home btrfs subvol=/@/home 0 0

需要的是一个命令行来挂载主子卷。

答案1

这是/etc/fstab从 /dev/sdd2 恢复的(来自聊天):

UUID=a501872f-9564-4568-a942-8b913bb93166 / btrfs defaults 0 0
UUID=a501872f-9564-4568-a942-8b913bb93166 /var btrfs subvol=/@/var 0 0
UUID=a501872f-9564-4568-a942-8b913bb93166 /usr/local btrfs subvol=/@/usr/local 0 0
UUID=a501872f-9564-4568-a942-8b913bb93166 /srv btrfs subvol=/@/srv 0 0
UUID=a501872f-9564-4568-a942-8b913bb93166 /root btrfs subvol=/@/root 0 0
UUID=a501872f-9564-4568-a942-8b913bb93166 /opt btrfs subvol=/@/opt 0 0
UUID=a501872f-9564-4568-a942-8b913bb93166 /home btrfs subvol=/@/home 0 0
UUID=a501872f-9564-4568-a942-8b913bb93166 /boot/grub2/x86_64-efi btrfs subvol=/@/boot/grub2/x86_64-efi 0 0
UUID=a501872f-9564-4568-a942-8b913bb93166 /boot/grub2/i386-pc btrfs subvol=/@/boot/grub2/i386-pc 0 0
UUID=DDC0-DAF7 /boot/efi vfat utf8 0 2
UUID=a501872f-9564-4568-a942-8b913bb93166 /.snapshots btrfs subvol=/@/.snapshots 0 0 

您的系统已设置为使用Btrfs 子卷。这是现代 OpenSuSE 的常见配置。

由于 /dev/sdd2 的主btrfs卷已安装在/media/bc/a501872f-9564-4568-a942-8b913bb93166,您应该能够使用以下命令安装“丢失”的部分:

export MOUNTPATH=/media/bc/a501872f-9564-4568-a942-8b913bb93166
sudo mount -o subvol=/@/var /dev/sdd2 $MOUNTPATH/var
sudo mount -o subvol=/@/usr/local /dev/sdd2 $MOUNTPATH/usr/local
sudo mount -o subvol=/@/srv /dev/sdd2 $MOUNTPATH/srv
sudo mount -o subvol=/@/root /dev/sdd2 $MOUNTPATH/root
sudo mount -o subvol=/@/opt /dev/sdd2 $MOUNTPATH/opt
sudo mount -o subvol=/@/home /dev/sdd2 $MOUNTPATH/home

上面是从您的情况/etc/fstab到恢复情况的简单转换,$MOUNTPATH定义了变量以节省一些打字工作并使这些行更易于阅读和理解。

在 中btrfs,子卷有点像 LVM 逻辑卷:它们都共享相同的物理空间,因此您不会遇到“我的可用空间位于错误的文件系统中”的问题,该问题是具有多个文件系统的传统设置中常见的问题,没有 LVM 和不太完美的预先计划。

在这里,子卷必须像单独的文件系统一样安装,因为 SuSE 默认情况下是这样设置的。还可以让文件系统处理子卷,以便它们与“主”卷(又名默认子卷)。

挂载btrfs文件系统时,如果未指定subvol=挂载选项,文件系统驱动程序将假定您指的是默认子卷。除非文件系统另有专门配置,否则默认子卷将为subvol=/.

如果您无法/etc/fstab从根文件系统(btrfs在本例中=主卷)获取文件,您可以找出任何带有sudo btrfs subvolume list -a <mountpoint of the btrfs filesystem>.

相关内容