私の古いGentooラップトップにudevの問題があるようです。おそらく最新のソフトウェアを使用してemerge
、udev + kernelをアップグレードし、「udev / kernelをアップグレードした後にこれを実行してください」というメッセージを受け取り、「画面の出力を見てこのメッセージを読んでシステムを再起動する前に、処理してください。」残念ながら、私はもちろんメッセージを確認するのを忘れてしまいました/dev/hda3
。
/dev/hda3
これでシステムブートを手動で作成し、続いて(以下で詳しく説明する)この問題を解決できましたが、init
この問題を完全に解決する方法についてのアドバイスが必要です(したがって、毎回以下の手順を繰り返す必要はありません)。新兵)。
(誰かが私のGentooコンピュータで私がインストールしたパッケージのインストール後にすべてのメッセージを見つけることができる場所を教えてくれた場合は、udevと私が読む必要があるカーネルに関する指示を見つけることができます。)
関連ソフトウェアバージョン:
Gentoo強化カーネル2.6.36-r6(優先)および2.6.28-r9(終了前21ヶ月)。以下に説明する退屈な手動起動プロセスは、両方のカーネルバージョンで動作することが確認されました。 udevパッケージはudev-151-r4です。
「ルートファイルシステムの確認」「ステップに達するまで、起動時にすべてが問題ないようです(マシンはカーネルを起動し、/proc、/sys、/devをマウントし、udevdを起動し、ueventsに基づいて/devを埋め、ueventを処理し、/dev/ptsをマウントします)。
そこから解放されます
Failed to open the device '/dev/hda3': No such file or directory
その後、rootパスワードを尋ねます(または続行するにはCtrl-Dを押します)。
私がそれを入力すると、シェルは秋にあり、それがにあることをmount
知らせます。また、書き込み不可能(読み取り専用/読み取り専用ファイルシステムなど)について文句を言います。まだリリースが完了していないことを考慮すると、これらすべてが理解されます。rootfs
/dev/root
/
mount
/etc/mtab
これにより、通常はそこにある必要がある、またはデバイスがls /dev
ないことがわかります(udevでそのデバイスを作成したい)。 、またはデバイスも含まれていないため、最新のudevやカーネルが他のディスクデバイスを呼び出すためのルールを変更するという問題は見られません。また、ディスクデバイスが「隠す」ことができるディレクトリもありません。hda
hda1
hda2
hda3
/dev
sda
sda1
sda2
sda3
/dev/disk
だから私の次の(おそらく汚い)ステップは手動で作成することでした、hda
(私は他のGentooサーバーの1つを少し見て、メジャー番号とマイナー番号、適切な権限とグループメンバーシップを見つけました):hda1
hda2
hda3
/dev
mknod /dev/hda b 3 0
mknod /dev/hda1 b 3 1
mknod /dev/hda2 b 3 2
mknod /dev/hda3 b 3 3
chmod 660 /dev/hda*
chgrp disk /dev/hda*
残念ながら、Ctrl-Dを実行するかexit
ここに書き込むと、中断された起動順序は続行されず、代わりに再起動が開始されます(コンピュータが見つからない状態に切り替えます/dev/hda
)。それ残念ながら、この問題に対する解決策はありません。
起動直後に「I」を押して(「i」も試してください)、init
さまざまな初期化スクリプト(例:/ proc、/ sysマウントなど)の実行を開始して他の回避策を試しましたが、失敗しました。起動順序に達する(失敗する)前に、対話型起動モードで/ dev / hda3を確認しようとしました。
代わりに、私の/dev/hda3
デバイスを使用してOSファイルシステムをマウントし続けます。
mount -o remount -o rw /dev/hda3 /
これで、マイコンピュータのファイルシステムへの書き込みアクセス権がありました。一部この状況を解決するためのオプション:設定ファイルの変更、さまざまな初期化スクリプト、サブシステムの起動など
一つのことをするいいえそれでも効果があったのはランレベルを変更することでした。理由は、init 3
エラーメッセージで失敗したためですinit: /dev/initctl: No such file or directory
。私は別のGentooサーバーを見直して、これが/dev/initctl
権限があり、属するパイプであることを知っていたので、再作成しました。600
root:root
mknod /dev/initctl p
chmod 600 /dev/initctl
今はinit 3
失敗しますが、少し違ってしばらく中断され、次のメッセージを放棄しますinit: timeout opening/writing control channel /dev/initctl
。これは、元のプロセス(プロセスID 1)が新しく作成されたプロセスを読み取るために開かなかったinit
ために意味があります。/dev/initctl
これでinit
マニュアルページを読んで、sendが閉じて再び開くSIGUSR
ことに気づきました。init
/dev/initctl
正確に必要なのは、コマンドを実行してkill -l
すべてのシグナルとその番号(ここで数字10が表示されている)のリストを取得し、SIGUSR1
makereopen
kill -10 1
コマンドを実行してランレベル3を再入力することです。init
/dev/initctl
init 3
それでは、init
ランレベル3に入り、多くのスクリプトを実行してみてください。残念ながら、これらのスクリプトはすべて失敗しますERROR: cannot run syslog-ng until sysinit completes
。そのため、システムを再起動し(実際には期待どおりに機能しますinit
。/dev/initctl
ログインしてroot
質問を発行しました)、送信されたポイントまで上記reboot
の手順(書き込み可能に再インストールを除く)を繰り返しました。もう少し滑らかな方法で起動順序を復元してファイルを再度読み取ろうとします。/dev/hda3
SIGUSR1
init
init
/etc/inittab
init q
何もないそんなことが起こったようです。だから/etc/inittab
という名前で見えるランレベル項目をどこで見つけたか調べてみましょうsysinit
。私はリスクを取って再実行しました。
init sysinit
今回はinit
使用メッセージについて文句を言います。もう一度読んで、/etc/inittab
項目がパラメータとして呼び出されることを報告し、一度試してみることにsysinit
しました。/sbin/rc
sysinit
それ:
/sbin/rc sysinit
今システムは多くのサービスを開始しようとします。そしてそれはうまくいきました!/proc
さらに、インストール用のinitスクリプトが再実行されたときにすでにインストールされているか/sys
どうかも確認されます(これは、コードで完全性とエラーチェックを実行し、問題が発生した場合に応じて対処することがどれほど重要かを証明します)/dev
)特別な場合)。これに満足して、/etc/inittab
その項目にもコマンドを実行することにしましたbootwait
。その項目にもランレベルの文字や数字が欠けているからです。
/sbin/rc boot
同様に、主にネットワーキング用に複数の初期化スクリプトが起動されます。予期しないエラーは報告されていないため、ランレベル3で再試行できて嬉しかったです。
init 3
initスクリプトが完了すると、マシンが起動してrootとしてログインできます(理論的にはこの混乱の根本原因を解決します)!
ベストアンサー1
カーネルを再コンパイルし、設定されていないか、設定されていないことを確認しCONFIG_SYSFS_DEPRECATED
ましたCONFIG_SYSFS_DEPRECATED_V2
。
ただし、数回のCONFIG_IDE
設定されていない再試行(およびハードドライブ用のカーネルが見つからなかった後)の後、CONFIG_IDE
置く廃止予定のATA / ATAPIサポートで、より多くのカーネル構成オプションを見つけることができます。もう一度(/ dev / hda検出が機能する)別のサーバーを見て、欠落しているATA / ATAPI関連のカーネルオプションを追加しました。 どの実際には気付かないオプションを追加しましたが、ATA / ATAPIで有効になっているすべてのオプションのリストは次のとおりです。
CONFIG_IDE_GD
CONFIG_IDE_GD_ATA
CONFIG_IDE_PROC_FS
CONFIG_IDE_GENERIC
CONFIG_IDE_PCIBUS_ORDER
CONFIG_BLK_DEV_GENERIC
CONFIG_BLK_DEV_PIIX
また、シリアルATAおよびパラレルATAのサポートも無効にしました。
だから今起動してデバイスを正常に検索するカーネルがあります/dev/hda3
。
私はこれが廃止されたATA / ATAPIカーネルサポートに頼る悪い習慣であることを知っています。いいえより近代的なSATA / PATAコアサポートを使用してください。結局SATA / PATAに移行する必要がありました。しかし、今は幸せです(そして私のLinuxシステムについてもっと知りました)。
(質問を投稿した後、それに答えて私の答えを許可された答えとして選択した場合はお詫び申し上げます。