パッケージをアップデートしたらArch Linuxが起動しなくなってしまったので、そのときに対応したことを備忘録的な感じで残して置こうと思う。
目次
概要
pacman -Syuでパッケージアップデートを行い再起動を行ったら、GNOME Desktopがうまく起動せずにログイン画面まで行かず、フリーズしてしまうということがあった。仕方がないのでGRUBのオプションでCUI起動させるようにパラメータをいじり、CUI起動をさせたところ、今度は CUIのログイン画面まではいったが、USBが全く認識しなく、キーボート等が使えなくなってしまった。
いろいろ調べてみると、パッケージアップデート時にうまくカーネルイメージが生成されないと起こる事象らしいので、Arch LinuxをUSBから起動し、chrootで起動しなくなったArch Linuxに入って修復を行う。
修復
1.Arch Linuxのインストールに使ったディスクを用意する。手元になければ以下のサイトからisoイメージをダウンロードする。
https://www.archlinux.jp/download/
2.作成したディスクでOSを起動し「Boot Arch Linux (x86-64)」を選択
3.マウントポイントを作製する。
#mkdir -p /mnt/boot |
4.root ファイルシステムをマウントする
#mount /dev/sdXN /mnt |
ls /mnt で /root /etcとか見れればOK。
5.bootファイルシステムをマウントする
#mount /dev/sdXN /mnt/boot |
ls /mnt/bootで中身が見えればOK
6.proc/dev/runファイルシステムをマウントする
#mount -t proc none /mnt/proc #mount -o bind /dev /mnt/dev #mount -o bind /run /mnt/run |
7.chrootを使い、rootディレクトリを/mntへ移す。
#chroot /mnt /bin/bash |
/bin/bashのところは、/bin/zshなどでもOK。
8.今のままだと PATHが通ってないのと、proxyの設定などが反映されてないので /etc/profileを読み込む
#source /etc/profile |
9.カーネルイメージを作り直す前に、再度パッケージのアップデートを行う
#pacman -Syy #pacman -Syu |
10.udev, mkinitcpio, linuxパッケージの再インストールを行う。
#pacman -S udev #pacman -S mkinitcpio #pacman -S linux |
11.初期RAMディスクを再生成する。
#mkinitcpio -p linux |
12.chroot環境から抜けてrebootコマンドで再起動をかける。
#exit #reboot |
参考にしたサイト
https://wiki.sabayon.org/index.php?title=HOWTO:_chroot_from_a_LiveCD
https://archlinux-blogger.blogspot.com/2014/11/arch-linux-cant-boot-arch-linux.html?m=1