我的磁盘真的很糟糕,甚至 grub 也不再响应了...所以我想获取旧磁盘的数据并完全重新安装(无论如何我都想做的事情)。首先我找到了分区的名称:
root@kubuntu:/media/kubuntu# fdisk -l
Disk /dev/nvme0n1: 1.86 TiB, 2048408248320 bytes, 4000797360 sectors
Disk model: INTEL SSDPEKNW020T8
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: 2F317938-7F93-4301-A833-A6AB350EBFF2
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 2549759 1499136 732M Linux filesystem
/dev/nvme0n1p3 2549760 4000796671 3998246912 1.9T Linux filesystem
发现它是用 crypto_LUKS 加密的:
root@kubuntu:/home/kubuntu# lsblk -lf | grep LUKS
nvme0n1p3 crypto_LUKS 2 4c6e6d37-9275-45eb-acc8- ad3fc6a5f194
尝试将映射器放入未加密的数据:
root@kubuntu:/home/kubuntu# cryptsetup luksOpen /dev/nvme0n1p3 mydata
Enter passphrase for /dev/nvme0n1p3:
root@kubuntu:/home/kubuntu#
发现它是 LVM 系统的一部分:
root@kubuntu:/home/kubuntu# sudo mount /dev/mapper/mydata /mnt/nvme/
mount: /mnt/nvme: unknown filesystem type 'LVM2_member'.
因此执行了一些 lvm 命令来查看分区:
root@kubuntu:/home/kubuntu# lvmdiskscan
/dev/nvme0n1 [ 1.86 TiB]
/dev/loop0 [ <1.80 GiB]
/dev/mapper/mydata [ 1.86 TiB] LVM physical volume
0 disks
10 partitions
1 LVM physical volume whole disk
0 LVM physical volumes
root@kubuntu:/home/kubuntu# lvscan
ACTIVE '/dev/vgkubuntu/root' [<1.82 TiB] inherit
ACTIVE '/dev/vgkubuntu/swap_1' [976.00 MiB] inherit
root@kubuntu:/home/kubuntu# lvdisplay
--- Logical volume ---
LV Path /dev/vgkubuntu/root
看起来它们是活跃的,所以想安装它们:
root@kubuntu:/home/kubuntu# mount /dev/mapper/mydata /mnt
mount: /mnt: unknown filesystem type 'LVM2_member'.
从这里开始,它对我来说变得模糊......并尝试了几种方法来安装分区:
root@kubuntu:/home/kubuntu# mount /dev/vgkubuntu/root /mnt/nvme/
mount: /mnt/nvme: wrong fs type, bad option, bad superblock on /dev/mapper/vgkubuntu- root, missing codepage or helper program, or other error.
root@kubuntu:/home/kubuntu# mount -t ext4 /dev/vgkubuntu/root /mnt/nvme/
mount: /mnt/nvme: wrong fs type, bad option, bad superblock on /dev/mapper/vgkubuntu-root, missing codepage or helper program, or other error.
只是一些额外的信息,不知道是否有用......
root@kubuntu:/home/kubuntu# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 1.9T 0 disk
├─nvme0n1p1 259:1 0 512M 0 part
├─nvme0n1p2 259:2 0 732M 0 part
└─nvme0n1p3 259:3 0 1.9T 0 part
└─mydata 253:0 0 1.9T 0 crypt
├─vgkubuntu-root 253:1 0 1.8T 0 lvm
└─vgkubuntu-swap_1 253:2 0 976M 0 lvm
还使用udiskctl:
kubuntu@kubuntu:~$ udisksctl unlock -b /dev/nvme0n1p3
Passphrase:
Error unlocking /dev/nvme0n1p3: GDBus.Error:org.freedesktop.UDisks2.Error.Failed: Device /dev/nvme0n1p3 is already unlocked as /dev/dm-0
root@kubuntu:/home/kubuntu/Downloads# udisksctl mount -b /dev/mapper/mydata
Object /org/freedesktop/UDisks2/block_devices/dm_2d0 is not a mountable filesystem.
所以现在尝试挂载/dev/dm-0
kubuntu@kubuntu:~$ sudo mount /dev/dm-0 /mnt/nvme/
mount: /mnt/nvme: unknown filesystem type 'LVM2_member'
仍然挂在 LVM2_member 类型上......
答案1
完成后cryptsetup luksOpen
,如果 LV 未激活,您很可能需要激活它:
sudo vgchange -ay # Activate LVs if not active
sudo lvscan
sudo lvdisplay
sudo mount /dev/mapper/vgkubuntu-root /mnt
答案2
dmesg
在尝试安装之前和之后检查输出;如果磁盘在尝试挂载文件系统时报告错误,则文件系统的超级块可能已损坏且无法读取。
/mnt/nvme
必须作为空目录存在,然后才能在其上安装任何内容。因此,mkdir -p /mnt/nvme
在尝试安装之前先运行。看起来错误消息是关于您尝试安装到的目录,而不是关于文件系统。
如果您确定文件系统类型是ext4
,那么mkfs.ext4 -n /dev/mapper/vgkubuntu-root
应该显示您可以尝试的备用超级块的预期位置。 (该-n
选项告诉mkfs
我们只模拟它在文件系统创建时会做什么。)
然后,您可以尝试安装mount -t ext4 -o ro,sb=<alternate superblock number> /dev/mapper/vgkubuntu-root /mnt/nvme
并<alternate superblock number>
替换为上一个命令指示的备用超级块编号之一。