fstab에는 항목이 없지만 부팅 시 파티션이 마운트됩니다.

fstab에는 항목이 없지만 부팅 시 파티션이 마운트됩니다.

임베디드 장치(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/fstabmount systemdsystemctl status *.mountsystemd

답변2

따라서 Ubuntu가 있지만 일부 사용자 정의 시작 스크립트가 있습니다.

마운트가 .(다른 의견에 따르면 해당 파일이 없는 것 같습니다. .service즉 , 파일이 없는 것 같습니다 .)/etc/systemd/system/.mountlib-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".

--https://raphaelhertzog.com/2011/02/28/debian-cleanup-tip-5-identify-cruft-that-can-be-removed-from-your-debian-system/

여기에서 검색된 디렉토리 목록은 약간 판단적입니다. /etc, /usr 및 /lib가 systemd 구성이나 sysvinit 스크립트와 같은 Ubuntu 시스템의 대부분의 부팅 스크립트를 다루기를 바랍니다. 귀하의 경우에는 매우일찍일부 가능한 위치를 제외한 부팅 스크립트입니다. /lib/modules커널 모듈을 로드할 수 있도록 설치를 매우 일찍 완료해야 합니다. udev시작하기 전에 설치가 필요합니다.

(반면에 이는 initrd에 끔찍한 해킹이 있을 가능성을 높입니다. 따라서 initrd 생성기의 수정이나 교체에 주의를 기울이고 싶습니다. 이름은 이라고 생각합니다 initramfs-tools.)


이 답변에 링크된 매우 유용한 블로그 게시물 시리즈를 작성한 Raphaël Hertzog에게 많은 감사를 드립니다.

관련 정보