我的笔记本电脑出现故障,但我确信硬盘驱动器没有问题。
我想获取其中的数据,我将笔记本电脑的硬盘驱动器(使用 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>
.