
誤ってシステム上の initrd イメージを削除してしまいました。どうすれば復元できますか?
答え1
これは、ライブ CD から initrd.lz を抽出する方法 (通常はカスタム ライブ CD を作成する場合に使用される) という元の質問に対する回答です。
initrd.lzを作業ディレクトリにコピーします(~
)
cp /media/cdrom/initrd.lz ~
内容を抽出するディレクトリを作成します。私はinitrd
、ディレクトリにcdを使用します。
mkdir ~/initrd
cd ~/initrd
抽出する
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames
必要に応じて変更を加え、再パッケージ化します
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../cusotm.initrd.lz
新しいinitrdはホームディレクトリにあり、cusotm.initrd.lz
答え2
各カーネルの initrd イメージは、カーネルのインストール時にマシン上のモジュールとアプリケーションから構築されます。不足している initrd は、以下のコマンドを使用して簡単に構築できます。
update-initramfs -c -k <version>
(カーネルの適切なバージョンに置き換えることを忘れないでください。)
答え3
これは、コメントに投稿された OP の問題を解決するより良い方法です。
Ubuntu インストールでライブ CD から initrd を使用しようとしています。誤って削除してしまいました。 – Binoy Babu
initramfs を作成するには、まず代替カーネルを起動します (古いものでも問題ありません)。
そして実行する
sudo mkinitramfs 3.2.0-15-generic-pae -o /boot/initrd.img-3.2.0-15-generic-pae
pae カーネルがインストールされていないため、「3.2.0-15-generic-pae」が機能しない場合は、/lib/modules
名前を取得するために次の内容を一覧表示します。
ls /lib/modules
古いカーネルがない場合は、ライブ CD を起動して以下を使用できますchroot
。
まずルート パーティションをマウントします:
mount -t ext4 /dev/sdX /mnt
。正しいパーティション名を使用してこのコマンドを入力してください。 などのコマンドを使用してlsblk
正しいblkid
パーティションを見つけます。[オプション] 別のブート パーティションがある場合は、次のようにマウントします。
mount -t ext4 /dev/sdY /mnt/boot
次に、コマンドに必要なすべての仮想ファイルシステムをバインドマウントします
mkinitramfs
... mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /dev/proc次に、フォルダーに切り替えて
/mnt
、mkinitramfs
上記のようにコマンドを実行します。