저는 2개의 경쟁 dhcp 클라이언트인 connman 및 systemd-networkd와 함께 yocto(자동차 등급 Linux: Halibut 8.0)에서 구축한 OS가 포함된 임베디드 시스템을 가지고 있습니다.
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
이미지 문서(사용 가능한 경우)도 참조).
이것이 실제로 호환되지 않는 서비스 집합인 경우 올바른 해결책은 필요한 서비스만 활성화하여 기본 이미지를 복구한 다음 장치를 다시 플래시하는 것일 수 있습니다.