今日は、システムを破損するいくつかのファイルを回復するためにライブUSBで起動する必要がありました。私はすべてのガイドが言ったことにほとんど従いました。
mount /dev/sd3 /mnt
mount /dev/sd1 /mnt/boot
chroot /mnt
(SWAP(例:sda2)もマウントする必要があるかどうかわかりませんが、見たことがないのでスキップしました。)
私の質問は: 私がなぜこれをするか。cd
以下を使用して、ライブUSBのファイルにアクセスできます。これは何の問題ですか?
答え1
ルートディレクトリを変更すると、本質的に死んだシステムに切り替わります。故障した車の始動をかけるために作動中の車を使用するのと同じです。
今/
死システムに言及すると、すべてのコマンドが一緒にうまく動作します。今、私のシェルの記録には、私が起動したアクティブシステムではなく、死んだシステムに行ったことが含まれていることが気に入ります。また、作業中のシステムapt
に暗黙的に依存し、他の多くのツールを使用できます。多くのツール(たとえば)にはルート切り替えのための独自のオプションがありますが、入力するのは非常に面倒でエラーが発生しやすいです。/
/mnt
journalctl
grub-install
答え2
chroot
すべてが必ずしも必要なわけではありません。単にファイルを編集したい場合は、通常はファイルなしで編集できます。
一部のシステムツールは、システムが特定の方法で配置されることを期待しています。パッケージマネージャ(rpm、yum、dpkg、apt、apk...)のようなものです。システムが異なるように配置されていることをこれらのコマンドに通知する方法はありません。
Debianのような実際の例を見てみましょうdpkg
。インストールされているパッケージを追跡します/var/lib/dpkg
。 Live USBから起動し、破損したシステムを/mnt
dpkgストレージにインストールすると、間違った場所になります/mnt/var/lib/dpkg
。 dpkgにこれを使用するように指示できないため、dpkgを使用して次の操作を実行することはできません。故障したシステムを修理しない限り……
chroot /mnt
すべてを元の位置に移動したら。したがって、元の場所/mnt/var/lib/dpkg
に戻ると、dpkgが再び正しく実行されます。/var/lib/dpkg
いいえ、通常はスワップを追加する必要はありません。スワップの一般的な人の説明は、RAMを拡張するためにいくつかのハードドライブスペースを使用することです。この種のアクティビティには通常、既存のRAMの一部しか必要ありません。 RAMが不足している場合は、いつでも追加できます。したがって、ファイルからSWAPをインストールすると、次のことが/var/swap
できます。
swapon /mnt/var/swap
あなたの前chroot
または
swapon /var/swap
chrootの後。