組み込みデバイス(4.4.113カーネルを含むubuntu 16.04.4 LTS)でubuntuを使用していますが、fstabには1つのエントリしか表示されません。
/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に感謝します。