パッケージアップデート等で起動しなくなったArch LinuxをLive USB経由で修復してみる



パッケージをアップデートしたら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

Leave a Reply

Your email address will not be published. Required fields are marked *