我有一个带有 NTFS 分区的 RAID-0 卷,该卷在我的双引导系统上运行多年(Windows 和 Linux 均可读写)。
今天在升级do-release-upgrade -d
到 Ubuntu 22.04(从 Ubuntu 20.04)之后,这个文件系统没有出现在 Ubuntu 中。问题似乎与设备映射有关;这是我迄今为止尝试过/发现的:
它在 Windows 中仍然运行良好。我认为磁盘上没有任何变化。
不同磁盘(非 RAID)上的 NTFS 分区仍然可以挂载并正常工作。
引导到旧内核(通过 grub)并不能修复它(并且似乎会导致其他问题)。
我以为我的设置是“硬件 RAID”,因为我通过名为“Intel Matrix Storage Manager”的 BIOS 启动屏幕配置了它,但我猜这实际上是“fakeraid”。
RAID 卷显示在磁盘实用程序中(如
/dev/dm-0
,并且此文件存在),没有分区,只有“未分配的空间”。RAID 卷显示在 GParted 中(如
/dev/mapper/isw_dfjaifidah_KarlsRaid
,且此文件存在),并带有一个名为 ntfs 的分区/dev/mapper/isw_dfjaifidah_KarlsRaid1
(即带有附加的卷名1
),但该设备文件不存在。中唯一的文件/dev/mapper/
是isw_dfjaifidah_KarlsRaid
.
这是 的相关部分sudo fdisk -l
。 (sda
、sdb
、sdc
是 RAID 阵列中的磁盘。)
Disk /dev/sda: 596.17 GiB, 640135028736 bytes, 1250263728 sectors
Disk model: WDC WD6401AALS-0
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: 0x15967f5e
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 3750772735 3750770688 1.7T 7 HPFS/NTFS/exFAT
Disk /dev/sdb: 596.17 GiB, 640135028736 bytes, 1250263728 sectors
Disk model: WDC WD6401AALS-0
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: 0x2a0921b8
Disk /dev/sdc: 596.17 GiB, 640135028736 bytes, 1250263728 sectors
Disk model: WDC WD6401AALS-0
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: 0x2a0921bf
Disk /dev/mapper/isw_dfjaifidah_KarlsRaid: 1.75 TiB, 1920398131200 bytes, 3750777600 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 131072 bytes / 393216 bytes
Disklabel type: dos
Disk identifier: 0x15967f5e
Device Boot Start End Sectors Size Id Type
/dev/mapper/isw_dfjaifidah_KarlsRaid-part1 2048 3750772735 3750770688 1.7T 7 HPFS/NTFS/exFAT
该文件/dev/mapper/isw_dfjaifidah_KarlsRaid-part1
(请注意-part1
)也不存在。
/dev/sda1
我对出现的事实有点担心,因为(如果我的假设是正确的)我们应该只在组合卷上查找分区表,而不是直接在阵列中的单个磁盘上查找。文件/dev/sda1
存在,并sudo ntfs-3g.probe --readwrite /dev/sda1
报告“NTFS 签名丢失”。也许系统正在 上找到我的分区表sda
,即使该数据只是 RAID 条带的一部分,并dev/sda1
基于它进行创建。我可以想象,当遇到 RAID 卷上相同的“真实”分区表时,这会导致某种名称冲突。
FWIW,hdparm -z /dev/mapper/isw_dfjaifidah_KarlsRaid
输出:
/dev/mapper/isw_dfjaifidah_KarlsRaid:
re-reading partition table
BLKRRPART failed: Invalid argument
这几乎就是我被困住的地方!我怎样才能解决这个问题?预先感谢您的任何建议 - 即使是显而易见的建议,因为我真的不知道我在做什么。
其他一些注释(可能不相关):
- 昨天我通过 GUI“附加驱动程序”工具从 升级
nvidia-driver-390
到nvidia-driver-470
这个问题它将我从一个内核切换-generic
到一个-oracle
无法识别我的网络硬件的内核。想要一个更新的(通用)内核是我进行发行版升级的动力。 - 我想从 Ubuntu 22.04 Live CD 进行全新安装(我在刻录后根据发布的校验和进行了验证),但它无法启动(几分钟后“无法启动 CUPS 调度程序”)。
- AFAICT进展
do-release-upgrade
顺利,除了最后出现了一些“mpi”包的错误。之后,apt
命令失败,dpkg 抱怨这些包“尚未配置”。我通过重新安装解决了这个问题openmpi-bin
,如下所示这个答案。
根据评论中的要求提供更多输出:
# lsblk -M -f
NAME
FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
[after a bunch of loop devices related to /snap/...]
┌┈▶ sda
isw_ra 1.2.0
├┈▶ sdb
isw_ra 1.2.0
└┬▶ sdc
isw_ra 1.2.0
└┈┈isw_dfjaifidah_KarlsRaid
sdd
│
├─sdd1
│ ntfs OCZ Vertex 4 1A7643E57643C06D 58.6G 69% /mnt/WinC
├─sdd2
│ ntfs 129E918C9E9168CD
├─sdd3
│
├─sdd5
│ ext4 1.0 5b327639-85e6-4f6a-ac79-743cfedf3e29 10.8G 64% /
└─sdd6
swap 1 b601da00-767d-4e50-b62a-0b832992599c [SWAP]
# partx /dev/mapper/ is isw_dfjaifidah_KarlsRaid
partx: bad usage
Try 'partx --help' for more information.
# partx /dev/mapper/isw_dfjaifidah_KarlsRaid
NR START END SECTORS SIZE NAME UUID
1 2048 3750772735 3750770688 1.7T 15967f5e-01
# partx /dev/sda
NR START END SECTORS SIZE NAME UUID
1 2048 3750772735 3750770688 1.7T 15967f5e-01
答案1
感谢 u1686_grawity,我们现在应该做一个简单的额外步骤:用来kpartx
检测构建驱动器上的分区。
sudo kpartx -a /dev/mapper/isw_dfjaifidah_KarlsRaid
我在我的系统上这样做了(当然,使用我自己的 jMicron fakeRAID),效果很好:
hopungo@hopungo-pc:~$ sudo kpartx -l /dev/mapper/jmicron_GRAID
jmicron_GRAID1 : 0 7813722112 /dev/mapper/jmicron_GRAID 2048
第二部分是使该命令在系统启动时自动运行,这在另一个主题中有所介绍(但信息已过时)。在确定它有效后,我将在此处添加我的解决方案。