systemd:无法禁用单元:只读文件系统

systemd:无法禁用单元:只读文件系统

我有一个嵌入式系统,其操作系统由 yocto(汽车级 Linux:Halibut 8.0)构建,有 2 个竞争的 dhcp 客户端:connman 和 systemd-networkd。

sa8155:~# systemctl --type=service

  connman.service                                        loaded active running Connection service
  systemd-networkd.service                               loaded active running Network Service

我想禁用 connman,但是当我尝试时出现这个奇怪的错误:

sa8155:~# systemctl disable connman.service
Failed to disable unit: File /etc/systemd/system/multi-user.target.wants/connman.service: Read-only file system

我是根。所以我不确定为什么它不允许我删除这个文件。

sa8155:~# ls -l /etc/systemd/system/multi-user.target.wants/connman.service
lrwxrwxrwx 1 root root 35 Nov 27  2019 /etc/systemd/system/multi-user.target.wants/connman.service -> /lib/systemd/system/connman.service
sa8155:~# 

有谁知道为什么?
禁用此服务的正确方法是什么?

文件系统的数量似乎异常多:

sa8155:~# df -hT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/root     ext4    1.4G  504M  812M  39% /
devtmpfs  devtmpfs    291M     0  291M   0% /dev
tmpfs        tmpfs    443M     0  443M   0% /dev/shm
tmpfs        tmpfs    443M   18M  425M   4% /run
tmpfs        tmpfs    443M     0  443M   0% /sys/fs/cgroup
tmpfs        tmpfs    443M   18M  425M   4% /etc/machine-id
/dev/sde4     vfat    180M   53M  128M  30% /firmware
/dev/sde5     vfat     64M  512K   64M   1% /bluetooth
/dev/sde9     ext4     59M   21M   38M  36% /dsp
/dev/sda2     ext4    122M   12M  108M  10% /var
/dev/sda2     ext4    122M   12M  108M  10% /etc/bluetooth
/dev/sda2     ext4    122M   12M  108M  10% /persist
/dev/sda2     ext4    122M   12M  108M  10% /etc/build.prop
/dev/sda2     ext4    122M   12M  108M  10% /etc/usb
/dev/sda2     ext4    122M   12M  108M  10% /etc/misc/wifi
/dev/sda2     ext4    122M   12M  108M  10% /etc/smack/accesses.d
/dev/sda2     ext4    122M   12M  108M  10% /etc/adb_devid
tmpfs        tmpfs    443M  416K  442M   1% /var/volatile
tmpfs        tmpfs    443M  416K  442M   1% /persist/volatile
/dev/sda8     ext4    108G  6.4G  101G   6% /data
/dev/sda8     ext4    108G  6.4G  101G   6% /home
tmpfs        tmpfs    755M  4.0K  755M   1% /run/user/0
/dev/sda8     ext4    108G  6.4G  101G   6% /home/root/adas/dev
/dev/sda8     ext4    108G  6.4G  101G   6% /data/root/adas/dev
sa8155:~# 

答案1

有时在嵌入式系统上,/文件系统以只读方式安装,通常是因为它的存储类型会随着多次写入而降级,并且寿命是优先考虑的。

此特定问题的临时解决方案是将文件系统重新挂载为rw,进行必要的更改,然后再次重新挂载到“ro”。这可能只是暂时的,因为可能尚未对持久存储进行更改。

有时,映像会提供一种使更改持久化的方法,例如,通过写入持久存储中的配置文件来在启动期间读取该配置文件(在您的情况下,我首先要查看的位置是/persist,但也可以在图像的文档(如果有的话)。

如果这确实是一组不兼容的服务,正确的解决方案可能是通过仅启用所需的服务来修复底层映像,然后重新刷新您的设备。

相关内容