背景
新しいシステムを購入して、さまざまなサービスを実行するためにソフトウェアの設定に多くの時間を費やしたところ、ドライブが不安定になる可能性があることに気付きました。そこで、ディスクを交換し、新しいディスクのコンテンツを保持することにしました。
システム ディスクも正しく起動できない問題があり、kernel
修正できないようです (すべてのgrub
指示に従いましたが、デフォルトでは正しく起動せずkernel
、手動で正しいものを選択した場合のみ起動します)。そこで、新しいディスクに を新規インストールするだけFedora Server
で、起動の問題も同時に修正できる最善の方法だと考えました。
どうしたの
新しいディスクはかなり大きかったので、インストール プロセス中に少し異なる方法でパーティション分割しました。次に、ドライブを取り外し、新しいシステム ディスクと古いシステム ディスクの両方を、近くにある別のサーバーに置きました。念のため、fstab
新しいシステム ディスクの は、パーティション があることがわかっていたので、そのままにしましたUUIDs
。
ファイルを移動する方法はいろいろありますが、私は新しいシステム ディスクにクリーンなルート パーティションを作成することにしました。dd
おそらくこれが可能だろうと思いましたが、パーティションが同じサイズでの使用に慣れていたので、少し不安でした。そこで、代わりに でルート パーティション ("/") を再フォーマットしましたgparted
。次に、通常の OS ツールを使用してファイルを移動しました。次に、新しいインストールから内容をカット アンド ペーストしUUID
、修正していたサーバーの非常に非標準のものに挿入しましたfstab
。
うまくいきました。
次に、システムを起動しようとしました。システムは POST し、grub
ブート ローダーに到達し、適切なカーネルを自動的に選択して起動しました。... 起動しなくなるまで!
「Plymouth Boot Screen を表示」か何かが表示され、一時停止し、その後、自分自身を呼び出す何かから多くのタイムアウト警告が出されましたdracut
。ここから、携帯電話でスクリーンショットを撮りました。そこには次のように書かれています。
Warning: Could not boot.
Starting Dracut Emergency Shell...
Warning: /dev/disk/by-uuid/<a uuid> does not exist
Generating "/run/initramfs/rdsosreport.txt"
journalctl
続いて、使用してrdsosreport.txt
バグ報告用に保存することを提案します。
ああ!どうすればいい?私は上記のようなことWarning [...] does not exist
をあちこち探し回った。何も見つからない!dracut emergency shell
答え1
fstabを更新する
/etc/fstab
パーティションの適切なUUIDでファイルを更新する必要がある
crypttab を更新する
以前のパーティションが暗号化されていた場合は、/etc/crypttab
新しいパーティションが暗号化されている場合は、対応するエントリを追加する必要があります。/etc/crypttab
initramfsを再生成する
/etc/fstab
ファイルを更新した後、/etc/crypttab
dracut を使用して initramfs イメージを更新する必要があります。
dracut緊急シェルからdracutイメージを更新するには、次のコマンドを実行します。
# dracut --hostonly --regenerate-all --force
参考文献
答え2
メッセージ:
Warning: /dev/disk/by-uuid/<uuid> does not exist
大きな手がかりです。
最新の Fedora Server のパーティションの一部では、ルート パーティションがUUID
2 か所に保存されていることがわかりました。しかし、このシナリオでは、実際には 3 つの問題があります。grub2
/boot
UUID
ルート パーティション ("/") の再フォーマットにより、実際に が変更されましたUUID
。したがって、まず新しいものUUID
を検出し、適切な場所に配置する必要があります。検索する方法は多数ありますUUIDs
が、これを行うための 1 つのコマンドライン ツールはblkid
次のようになります。
# blkid
/dev/sda1: UUID="64bbac09-1a12-4bea-8873-212ffb56f2a8" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="primary" PARTUUID="8a09913a-fdb2-42a0-98e3-6b89e16374d2"
このツールでは、各パーティションに対して 2 つがUUIDs
表示されますが、必要なのはそのうちの最初のものです。また、権限のないユーザーは を実行できないことにも注意してくださいblkid
。
ルート パーティションを配置するUUID
必要がある 3 つの場所は次のとおりです。
/etc/fstab
ルートパーティションのマウントが記述されている行で、- 行のカーネル オプションの設定で
/boot/grub2.cfg
、これを素早く見つけるには、前者 (UUID
まだある場合) を探します。または、、およびを探します"set kernelopts="root=UUID="
。 /boot/grub2/grubenv
ファイル内で引用されている行に類似した行を探します。/boot/grub2.cfg
次の行を探します。kernelopts=root=UUID=
新しい UUID のみを変更し、他のすべてはそのままにしておくことを忘れないでください。念のため、編集する前にファイルのバックアップを作成してください。