データパーティションとしてマルチディスクbtrfsファイルシステムがあります。私のルートディスクはext4です。
安定したテーブル:
UUID=290624c6-6b95-41fd-94a1-923ebca64b83 / ext4 rw,relatime,data=ordered 0 1
/dev/sdc /mnt/btrfs btrfs rw,relatime,compress-force=zlib,autodefrag 0 0
デバイスを起動すると、1分30秒待ってから次のメッセージが表示されます。
A start job is running for dev-sdc.device
以来
Dependency failed for /mnt/btrfs
ログインすればできます。
mount /mnt/btrfs
systemctl default
動作します。システムが正常に起動します。
まず、mkinitcpioフックで何かをする必要があるかもしれませんが、このページ説明する:
Archのデフォルトのmkinitcpioパッケージには、マルチデバイス(RAID)サポートに十分な標準btrfsフックが含まれています。これに加えて、カーネルはフックなしで単一のデバイスbtrfsルートを起動できます。
したがって、すべてがすぐに機能するはずです。
なぜうまくいかず、問題を解決するにはどうすればよいですか?
答え1
コメント2件。まず、デバイスの代わりにタグやUUIDでマウントしてみてください。デバイス名は随時変更されることがあります。
それ以外の場合は、コンピュータのファイルシステムについて学ぶために最初の電話がbtrfs
必要です。私はこれを処理できることを望みましたが、それのサービスファイルを作成して次の場所に置くまでは何とかできました。brtfs device scan
btrfs
arch
/etc/systemd/system/local-fs-pre.target.wants/btrfs-dev-scan.service
[Unit]
Description=Btrfs scan devices
Before=local-fs-pre.target
DefaultDependencies=false
[Service]
Type=oneshot
ExecStart=/usr/bin/btrfs device scan
[Install]
WantedBy=local-fs-pre.target
DefaultDependencies=false
そうでなければ、ブーツが汚れてしまいます。 (Arch以外のユーザーは代わりbtrfs
に配置できます)/sbin
/usr/bin
これはフックで処理する必要がありますがbtrfs
(後で見つけました)、まだ問題がある可能性があります。
しかし、他に質問があるかもしれません。これはDependency failed
、一部の初期必須サービスが開始されなかったことを示します。それが何なのかわかりません。自分のことを確認し、依存関係のjournalctl -b
苦情を検索する必要があります。一般的に、正確に何が欠けているかが記載されています。または、少なくとも一連の失敗した依存関係を取得します。依存関係の失敗は伝播する可能性があります...
systemd-analyze plot > boot.svg
シーケンスが開始される順序を正確に生成して確認することもできます。何が間違っているかを推測できます。誰が誰を待っていますか?それにsystemctl --failed
何と言ったの?
答え2
フックを追加することでmkinitcpio
保証できます。
btrfs device scan
ルートファイルシステムをマウントする前に、起動中に実行されます。
/etc/mkinitcpio.conf
行を修正して検索した後、先頭に配置してHOOKS
このbtrfs
フックを含めることができますudev
。
修正後は必ずinitramfsを再生成してください。mkinitcpio -p linux
Arch Wikiでは実際にudev
Hookを使用することをお勧めしますが、私も同じ問題がありました。