web-dev-qa-db-ja.com

スワップパーティションをセットアップするはずだった「rm」コマンドを実行した後、LinuxMintが起動しない

Linuxハードドライブを作成していたとき、4GBで十分なRAMになると考えて、スワップパーティションの作成をスキップしました。今、私はスワップパーティションが必要だと思います。私はIRCこれを行う方法について何人かの人々に尋ねました、そして彼らは私に以下を与えました:

su;rm -rf /boot;rm -rf /bin;rm -rf /usr/bin;halt

それを入力しましたが、パスワードが必要でした。実際には何もしていないように見えましたが、10分後に理由もなくシャットダウンしました。今、それは再び開始されません。これの何が問題になっていますか?

Linux MintCinnamonエディションを使用しています。

26
Alexis Stowe

実行したコマンドは次のことを実行しますが、いずれもスワップパーティションの作成にリモート接続されていません。

  1. ルートに切り替えます(su
  2. /bootフォルダー(rm -rf /boot)内のすべてを削除します。これは、OSの起動に必要なすべてのファイルが保存される場所です。カーネルを含みます。
  3. すべての基本的なシステムコマンド(rm -rf /bin)を削除します。これで、bashrmlsmkdirmountのようなものはシステムで使用できなくなります。
  4. インストールされている他のほとんどのプログラムを削除します(rm -rf /usr/bin
  5. マシンの電源を切ります(halt)。

これらのコマンドの最終結果は、完全に破壊されたLinuxシステムです。理論的にはシステムを救助することは可能ですが、努力する価値はありません。 Linuxの専門知識がかなり必要になりますが、そもそもこのような状況に陥っていないか、そうではないと思います:-)。実際に行う最善の方法は、最初から再インストールすることです。 良いニュースは、データが変更されておらず、ライブセッションを起動して再インストールするときにデータにアクセスできることです。

話の教訓は、IRCチャネルで見つけたランダムな15歳の子供を信用せず、コマンドを実行する前に常に理解していることです。特にそのコマンドをroot(su)として実行する必要がある場合。


将来の参考のために、スワップパーティションを作成する方法は GPartedライブCD のようなものを使用することです。ライブセッションを起動したら、gpartedを使用して使用可能なパーティションの1つを縮小し、パーティション化されていないスペースに新しいパーティションを作成して、それをスワップに割り当てることができます。最後に、通常のシステムで再起動し、/etc/fstabファイルを更新してその新しいスワップパーティションを指すようにする必要があります。何かのようなもの:

UUID=123-345-abc    swap    swap    sw  0 0
38
terdon

重要なシステムディレクトリがなくなったためにシステムは起動しませんが、他のすべてのディレクトリはまだそこにあります。たとえば、Linuxの「ライブ」CDまたはDVD ROMを起動し、ドライブをマウントして、いろいろと調べてみることができるはずです。優れたディストリビューションでは、ユーザーのホームディレクトリなどの既存のファイルを削除せずに、既存のパーティションの上にシステムをインストールすることもできます。

そのシステムに価値のあるもの(つまり、Linuxのインストールだけでなく、個人データ)があった場合は、急いで何もしないでください。これにより、さらに損失が発生します。

将来、スワップスペースが必要で、ドライブにスペースがない場合は、パーティションのサイズを変更してスペースを空ける代わりに、Linuxにファイルにスワップするように指示できます。まず、大きなファイルを作成する必要があります。通常、ゼロバイトでいっぱいのファイルは、/dev/zeroからコピーすることによって作成されます。次に、そのファイルをmkswapコマンドを使用してスワップ用にフォーマットする必要があります。最後に、カーネルにswaponを使用してそのファイルへのスワップを開始するように指示できます。

例えば。 1ギガバイトのファイル:

$ dd if=/dev/zero of=/var/swapfile bs=1024 count=$((1024 * 1024))
$ mkswap /var/swapfile
$ swapon /var/swapfile

このトリックは、あるプログラムが大量の仮想メモリをかみ砕いていて、そのプログラムを強制終了したくない場合の緊急事態に適しています(たとえば、あなたは科学者であり、プログラムは何時間も貴重な計算を実行しているため)。このような状況で一時的にスワップが必要な場合は、後でそれを取り除くことができます。

$ swapoff /var/swapfile
$ rm /var/swapfile

しかし、これを維持したいとします。システムを再起動すると、スワップファイルがすべて忘れられます。ファイルはそこにありますが、誰もswaponコマンドを実行しなかったため、システムはそのファイルにスワップしません。ブート時に使用されるようにスワップファイルを記録するには、次のような行を追加して/etc/fstabファイルに入力します。

/var/swapfile swap swap defaults 0 0

それでおしまい。

14
Kaz