鱧技術

hamo_daisukiの技術メモ

ネットワーク接続の復旧(Bootstrapping a network connection)

DistroWatch Weekly, Issue 1060, 4 March 2024 より抜粋
Questions and Answers (by Jesse Smith)(元記事

ネットワーク接続の復旧(Bootstrapping a network connection)

No-longer-connected asks:ネットワークユーティリティを切り替えようとして、誤ってNetwork Managerを削除してしまった。今は有線接続ができず、無線接続するツールもありません。OSを最初からインストールし直さなくても、Network Managerを再びインストールする方法はありますか?

DistroWatch answers:インストールしているオペレーティングシステムのライブディストリビューションを使用して、コンピュータをオンラインにし、ネットワーキングクライアントをインストールするのが最善の方法です。ほとんどのライブデスクトップディストリビューションには、オンラインにするためのユーティリティ(Network Managerなど)が含まれています。インターネット接続を確立したら、次のステップでは、chroot でルートディレクトリを変更します。その後、ライブメディアのインターネット接続を使用して、chroot した環境に必要なパッケージをインストールできます。

では、これが実際の手順を見てみましょう。いくつかのステップを踏む必要があります:

  1. インストールされているオペレーティングシステムがどのパーティションにあるかを確認する。
  2. ライブデスクトップメディアで起動する。
  3. インターネット接続を確立する。
  4. インストールしたオペレーティングシステムにアクセスし、chrootでルートディレクトリを変更する。
  5. 足りないパッケージをインストールする。
  6. chrootで元にもどる。
  7. コンピュータを再起動し、変更がうまくいったことを確認する。

インストールされているLinuxディストリビューションにアクセスして修復しようとする例を見てみましょう。

オペレーティング・システムがどのパーティションにあるかを調べる

最初にすべきことは、ディストリビューションがどのディスクパーティションにあるかを調べることです。これにはいくつかの方法があります。1つの方法は、mountコマンドとgrepを使って、ルートパーティション(「/」の記号)がどこにあるかを調べることです。ここではターミナルを開き、ルートパーティションがデバイス/dev/sda2にあることを確認します:

$ mount | grep " / "
/dev/sda2 on / type ext4 (rw,noatime) 
ライブメディアから起動

次にすべきことは、ライブメディアからブートすることです。おそらく、最初にディストリビューションをインストールしたときに使ったのと同じメディアです。オリジナルのインストールメディアが入手できない場合は、デスクトップ環境のあるメインストリームのLinuxライブメディアであれば、どんなものでも大丈夫です。

インターネットに接続する

ライブ・デスクトップ環境が起動したら、ネットワーク・ユーティリティを開き、通常使用する方法でインターネットに接続する。

chroot環境を作成する

次に、ディストリビューションのルートファイルシステム(先ほど/dev/sda2パーティションにあることがわかりました)にアクセスし、chroot環境で分離する必要があります。まず、ターミナルを開き、ルートパーティションをマウント(アクセス)します。

$ mkdir myroot
$ sudo mount /dev/sda2 myroot

この時点では、ルートパーティションはマウントされていますが、ルートディレクトリは変更されていません。次のコマンドでルートディレクトリの変更を行います:

$ sudo chroot myroot
不足しているネットワーク・ユーティリティをインストールする

#で始まるプロンプトが表示されるはずです。ここから、ディストリビューションのパッケージマネージャを使って、不足しているネットワークユーティリティをインストールすることができます。

Network Manager のようなネットワークユーティリティをインストールするのに必要なコマンドは、使っているディストリビューションによって多少異なります。例えば、Arch ベースのディストリビューションでは、次のように実行します:

# pacman -Sy networkmanager network-manager-applet

DebianUbuntuファミリーを実行している人なら次のように実行します:

# apt-get update; apt-get install network-manager nm-tray

Fedoraディストリビューションを使っている人は次のように実行します:

# dnf install NetworkManager

ディストリビューションのドキュメントをチェックして、どのパッケージマネージャを使うか、新しいパッケージを見つけてインストールするための適切なコマンドを確認すると良いでしょう。

chrootを残してクリーンアップする

ネットワーク・ユーティリティのインストールが完了したら、コマンド・プロンプトで "exit "とタイプして chroot を離れることができます:

# exit

それからルートファイルシステムをアンマウントし、変更がハードドライブに反映されているか確認する。

$ sudo umount myroot

ルートファイルシステムがアンマウントされたら、コンピュータを再起動し、ライブメディアを外します。インストールしたオペレーティング・システムが起動したら、ネットワーク・ユーティリティを実行してオンラインになることができるようになっています。