LoginSignup
5
2

More than 3 years have passed since last update.

Linuxが突然起動しなくなったときの対処法

Last updated at Posted at 2019-11-05

はじめに

長くLinuxを使っていると様々な要因でLinuxが正常起動しなくなることがあります.
特にWindowsとLinuxをデュアルブートして使っている方には,そういった経験があるのではないでしょうか.
本記事では,普段自分がそういった場合に行っているルーチンを紹介します.

注意:本記事ではGrubを使っていることを仮定しています.

準備

まずはじめに,起動可能なLinux環境(USB,CD-ROMなど)を用意します.オススメはArch LinuxのインストールISO(archlinux-20xx.xx.xx-x86_64.iso)です.シェルを立ち上げられるものなら,これ以外でも大丈夫です.

Linuxインストール時と同様の手順で起動し,シェルを立ち上げます.

実践

普段使っているLinux環境へアクセスし,環境の修復を試みます.
修復準備をその1・その2で行い,その3で修復を試みます.

その1:ディスクを読み込む(mount)

まず,インストール済みのディスクを以下のコマンドで確認します.
以下は自分の環境での実行例です.

$ lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0 513.1M  1 loop /run/archiso/sfs/airootfs
sda      8:0    0 111.8G  0 disk 
├─sda1   8:1    0   512M  0 part
└─sda2   8:2    0 111.3G  0 part
sdb      8:16   0 465.8G  0 disk 
├─sdb1   8:17   0   450M  0 part 
├─sdb2   8:18   0   100M  0 part 
├─sdb3   8:19   0    16M  0 part 
├─sdb4   8:20   0 463.4G  0 part 
├─sdb5   8:21   0   564M  0 part 
├─sdb6   8:22   0   788M  0 part 
└─sdb7   8:23   0   507M  0 part 
... (中略)
sde      8:64   1  15.1G  0 disk 
├─sde1   8:65   1   627M  0 part /run/archiso/bootmnt 
└─sde2   8:66   1    64M  0 part                                                  

この例の場合,/dev/sda2がrootパーティーション,/dev/sda1がbootパーティーションです.また,/dev/sdbがWindowsのディスクです.この構成は環境によって異なります.
容量で見分けがつかない場合はlsblk -fでフォーマット形式を確認しながら判断します.

次に,これらのパーティーションを読み込みます.
以下に例を示します.

$ mount /dev/sda2 /mnt
$ mount /dev/sda1 /mnt/boot

Arch Linux以外のLive環境を使っている場合は,加えて次のコマンドを実行します.

$ mount -t proc /proc /mnt/proc
$ mount --rbind /sys /mnt/sys
$ mount --rbind /dev /mnt/dev

その2:普段の環境へアクセスする(chroot)

環境の修復をするために,普段使っているLinux環境へアクセスします.

Arch Linux ISOを使用する場合

$ arch-chroot /mnt

それ以外の場合

$ chroot /mnt /bin/bash

その3:修復

この時点で普段使っているLinux環境に移っています.
ここからは原因によって内容が変わりますが,ここでは一番ありがちなGrubのトラブルに対する対処方法を紹介します.
以下のコマンドをその1が適切に行われていないときに実行すると状況が悪化する場合があるので心配な場合は詳しい人に聞いてください.

次のコマンドでGrubを再インストール・再設定します.

$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck
$ grub-mkconfig -o /boot/grub/grub.cfg

その4:再起動

chroot環境を抜けて再起動します.
再起動時にUSB(またはCD-ROM)を抜き取ります.

$ exit
$ reboot

大抵はこれで直ります.
これで直らない場合は,その3からググりながら頑張ります.
英語で出てきたエラー文を含めてググると対処法が見つかりやすいです.

まとめ

本記事ではLinuxが突然起動しなくなったときに自分が行うことについて紹介しました.
皆さんのトラブル解決の参考になりましたら幸いです.

参考

chroot--ArchWiki
GRUB--ArchWiki

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2