Systemd关于NTFS分区的小问题

本文记录了一次在Gentoo Linux系统中遇到的启动错误问题及其解决过程。用户在升级后遇到了系统启动时无法正确识别并挂载NTFS分区的问题,通过向systemd-devel邮件列表求助,获得了来自systemd作者的帮助,并手动应用了补丁来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

缘起

我的系统Gentoo x86_64,在启动时我用/etc/fstab挂载了4个Windows7的NTFS分区。

下面是我的/etc/fstab文件内容:

/dev/sda7        /        ext4        noatime        0 1
/dev/sda1        /boot/efi    vfat        defaults    0 0
/dev/sda8        /home        ext4        defaults    0 0
/dev/sda4        /mnt/software    ntfs        defaults    0 0
/dev/sda5        /mnt/data    ntfs        defaults    0 0
/dev/sda6        /mnt/backup    ntfs        defaults    0 0
/dev/sda3        /mnt/system    ntfs        defaults    0 0

这里是我的lsblk的输出:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 931.5G  0 disk  
├─sda1   8:1    0   200M  0 part /boot/efi
├─sda2   8:2    0   128M  0 part  
├─sda3   8:3    0  58.5G  0 part /mnt/system
├─sda4   8:4    0 195.3G  0 part /mnt/software
├─sda5   8:5    0 244.1G  0 part /mnt/data
├─sda6   8:6    0 244.1G  0 part  
├─sda7   8:7    0  29.3G  0 part /
└─sda8   8:8    0 159.9G  0 part /home
sr0     11:0    1  1024M  0 rom

这里是未修正前的错误输出:

[   11.428530] systemd[1]: Device dev-disk-by\x2dpartlabel-Basic\x5cx20data\x5cx20partition.device appeared twice with dif
ferent sysfs paths /sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda3 and /sys/devices/pci
0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda4                                                         
[   13.027629] systemd[1]: Device dev-disk-by\x2dpartlabel-Basic\x5cx20data\x5cx20partition.device appeared twice with dif
ferent sysfs paths /sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda3 and /sys/devices/pci
0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda6                                                         
[   13.085674] systemd[1]: Device dev-disk-by\x2dpartlabel-Basic\x5cx20data\x5cx20partition.device appeared twice with dif
ferent sysfs paths /sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda3 and /sys/devices/pci
0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sda/sda5

由于发生错误是在我升级了219版本之后,所以我立刻google了一下,发现也有人有同样的问题,但是并没有什么解决方案,于是在像systemd-devel的邮件列表发送了邮件,很快收到了回复,并且是systemd 的作者给予我的回复,我感到很荣幸,其实就是一个小问题,而且也不容易触发的一个问题,恰巧栽到我同上。

下面是作者的修改方案:

http://cgit.freedesktop.org/systemd/systemd/commit/?id=5259bcf6a638d8d489db1ddefd55327aa15f3e51

PS:

Gentoo目前还没有对此次补丁更新ebuild,所以我只有手动更新了,涉及了一个问题:如何emerge修改后的代码:

  1. 其实不难,打开ebuild一看,就是几个过程,fetch,unpack,compile,install,merge
  2. 所以我们只需要手动执行fetch,unpack,之后再去修改下源代码,继续执行后三步,问题即可解决

感谢:

  1. systemd-devel社区,他们的辛勤付出和对代码的高标准严要求,不放过一个小错误
  2. Gentoo论坛,如果不是他们对这个emerge 修改后源代码的讨论,我也不会认识ebuild这个东西。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值