임베디드 장치(4.4.113 커널이 포함된 ubuntu 16.04.4 LTS)에서 ubuntu를 사용하고 있는데 fstab에 항목이 하나만 표시됩니다.
/dev/mmcblk0p7 / ext4 errors=remount-ro,noatime,nodiratime 0 1
"mount" 명령을 사용하여 마운트된 파티션을 확인해보면 많은 파티션이 마운트된 것을 볼 수 있습니다. 이제 자동으로 마운트되는 관련 파티션은 다음과 같습니다.
/dev/mmcblk0p5 on /lib/modules type ext4 (ro,relatime,data=ordered)
/etc/fstab에 항목이 없을 때 어떻게 마운트되는지 알 수 없습니까?
답변1
Ubuntu 16.04는 systemd
이를 사용하여 파일 시스템을 마운트합니다. Ubuntu는 실제로 시스템 시작 시 모든 줄을 확인 하고 각 항목에 대한 서비스를 생성하는 /etc/fstab
전통적인 접근 방식 에서 벗어났습니다 . 관리 중인 각 설치의 상태를 보려면 다음을 실행할 수 있어야 합니다.systemd
/etc/fstab
mount
systemd
systemctl status *.mount
systemd
답변2
따라서 Ubuntu가 있지만 일부 사용자 정의 시작 스크립트가 있습니다.
마운트가 .(다른 의견에 따르면 해당 파일이 없는 것 같습니다. .service
즉 , 파일이 없는 것 같습니다 .)/etc/systemd/system/
.mount
lib-modules.mount
그러나 설치는 다른 여러 위치에서 시작될 수 있습니다. 또한 살펴봐야 할 파일이 많은 파일 .service
에 있을 수도 있습니다 . 별도의 스크립트를 실행하여 간접적으로 작동 /lib/systemd/system
할 수 있으므로 원하는 내용을 빨리 찾을 수 있다는 mount
보장은 없습니다 .grep mount *.service
또는 공급업체가 내장된 "Ubuntu" 이미지에 대한 사용자 정의 수정 사항을 문서화했을 수도 있습니다.
그렇지 않은 경우 Ubuntu에서 가져온 것이 아닌 수정/생성된 파일을 검색하는 일련의 방법이 있습니다.
1. .deb
적절한 소스에서 설치된 소프트웨어 패키지가 없습니다.
소스 없이 직접 설치된 .deb 패키지를 검색하려면 를 실행하세요 aptitude search ?obsolete
. (또한 패키지가 적절한 소스에서 설치되었지만 더 이상 적절한 소스에서 사용할 수 없는 경우에도 표시됩니다. 이러한 패키지는 "사용되지 않는" 것으로 간주됩니다.)
--https://raphaelhertzog.com/2011/02/07/debian-cleanup-tip-2-get-rid-of-obsolete-packages/
의심스러운 패키지 이름을 찾으면 해당 파일을 나열할 수 있습니다. 예를 들어 설치된 패키지 foo의 경우 dpkg-query -L foo
)를 실행합니다. 반대로, 의심스러운 파일을 발견하고 해당 파일을 소유한 패키지를 조사하려면 를 실행하세요 dpkg-query -s /path/to/file
.
2. 스스로를 "Ubuntu"라고 부르지 않는 적절한 소스에서 설치된 패키지
apt 지원 소스(Ubuntu가 아닌 것으로 광고하는)에서 설치된 패키지를 검색하려면 를 실행할 수 있습니다 aptitude search '?narrow(?installed, !?origin(Ubuntu))!?obsolete'
.
을 사용하여 먼저 소스 목록을 보고 경고를 확인할 수도 있습니다 apt-cache policy
. 소스의 소스는 로 표시됩니다 o=Ubuntu
.
--https://raphaelhertzog.com/2011/02/14/debian-cleanup-tip-3-get-rid-of-third-party-packages/
비교를 위해 16.04에서 기본 공식 소스는 다음과 같습니다.
###### Ubuntu Main Repos
deb http://uk.archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse
###### Ubuntu Update Repos
deb http://uk.archive.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://uk.archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse
(적절한 문서를 찾기 어려워 유명 유틸리티에서 구했습니다.https://repogen.simplylinux.ch).
또는 그 반대 방법: 의심스러운 패키지 foo와 관련된 소스를 검색하려면 다음을 실행하십시오.apt-cache policy foo
3. 설치된 패키지 파일이 (부적절하게) 수정되었습니다.
설치된 패키지의 파일 수정 사항을 확인하려면(이러한 파일을 수정하지 않는 데에는 이유가 있지만 가능합니다) 를 설치 debsums
하고 실행합니다 debsums -c
.
--https://raphaelhertzog.com/2011/02/21/debian-cleanup-tip-4-find-broken-packages-and-reinstall-them/
4. 패키지의 일부로 설치되지 않은 파일
적절한 패키지 관리 이외의 프로그램에서 생성된 파일을 검색하도록 스크립트를 작성할 수 있습니다. 이로 인해 거의 확실하게 잘못된 긍정이 발생합니다. 이 목적에 대한 예제 스크립트를 찾았습니다.
(
export LC_ALL=C
comm -23 <(find /etc /lib /bin /sbin /usr -type f | sort) \
<(sort -u /var/lib/dpkg/info/*.list)
)
그러나 소음이 너무 많으면 cruft
분명히 동일한 작업을 수행하지만 안전하게 무시할 수 있는 몇 가지 파일을 알고 있는 이 명령을 시도하는 것이 더 나을 수 있습니다. cruft -d "/etc /lib /bin /sbin /usr" --ignore "/usr/local"
.
여기에서 검색된 디렉토리 목록은 약간 판단적입니다. /etc, /usr 및 /lib가 systemd 구성이나 sysvinit 스크립트와 같은 Ubuntu 시스템의 대부분의 부팅 스크립트를 다루기를 바랍니다. 귀하의 경우에는 매우일찍일부 가능한 위치를 제외한 부팅 스크립트입니다. /lib/modules
커널 모듈을 로드할 수 있도록 설치를 매우 일찍 완료해야 합니다. udev
시작하기 전에 설치가 필요합니다.
(반면에 이는 initrd에 끔찍한 해킹이 있을 가능성을 높입니다. 따라서 initrd 생성기의 수정이나 교체에 주의를 기울이고 싶습니다. 이름은 이라고 생각합니다 initramfs-tools
.)
이 답변에 링크된 매우 유용한 블로그 게시물 시리즈를 작성한 Raphaël Hertzog에게 많은 감사를 드립니다.