web-dev-qa-db-ja.com

誤って/ etcの名前を変更した後、元の名前に戻すにはどうすればよいですか?

Ubuntu 18.04を使用しています。

/etcフォルダーの名前をApache2に変更しました。それが私の最大の間違いでした

Sudoを使用する必要があるため、名前を元に戻すことはできませんが、しようとするとエラーが発生します

Sudo: unknown uid 1000

この問題を修正するにはどうすればよいですか?起動するライブシステムがありません。回復モードでは、ルートターミナルが開きますが、cannot open password databaseと言って閉じます。

37
Racoon

このような問題を解決する簡単な方法は、多くの場合、稼働中のシステムから起動し、/mntにルートパーティションをマウントしてからファイルの名前を変更することです。

ライブシステムまたはシステムを作成する手段がない場合、またはシステムに物理的にアクセスできないが、再起動してGRUBメニューを取得できる場合は、GRUBエディターでルートシェルを取得し、ファイルの名前を変更します。

再起動または電源をオフにし、スイッチをオンにします。起動時に通常GRUBメニューが表示されない場合は、 Shift または Esc GRUBメニューに移動します。

カーソルを下に移動してUbuntuの詳細オプションを押します enter、次に押す e ブートオプションを編集します(一度だけ-ここでの変更は永続的ではないため、後でクリーンアップする必要はありません)。

このような画面が表示されます1

screenshot of GRUB menu editor

linuxで始まる行にカーソルを移動し、カーソルをその行の末尾、またはカーネルブートパラメーター内の任意の場所に移動します。 /etcが設定されていないとシステムが起動に失敗する可能性があるため、正しい行にいることを確認し、ここに慎重に入力してください。

テキストinit=/bin/bashを追加してを押します F10 起動します。

これにより、Bash Shellをinitとしてシステムが起動します。ルートシェルが取得され、ファイルシステムは読み取り専用でマウントされます。2 ファイルシステムを書き込み可能にするには、次のコマンドを入力します

mount -o remount,rw /

これで、/etcの名前を変更できます(最初にlsにしたい場合があります)

mv /Apache2 /etc

これで、再起動するか、ルートシェルを通常のinitシステムに置き換えて、ここから通常どおりブートを完了できます。3

exec systemd 

Ubuntu MATE 18.04でこの手順をテストしました。


1 VirtualBoxからGRUBエディターの良質のスクリーンショットを入手してくださった Kulfy に感謝します!
2 このシナリオでは、/etcの設定ファイルからPATHを設定することはできませんが、Bashは 自動的に設定 になります。
3 exec systemdが機能しない場合は、exec /sbin/initがうまくいくはずです。そうでない場合、readlink -e /sbin/initは、実行する必要のある初期化プログラムへのパスを提供する必要があります。これにより、execをフルパスで使用できます。この方法で処理できない場合は、rebootと入力してください。

63
Zanna

ライブUSBがある場合は、そのUSBから起動して既存のファイルシステムをマウントし、そこから/etcの名前を変更できるはずです。 こちら は、必要な場合にライブUSBを作成する方法に関するチュートリアルです。

ライブUSBで起動したら(Ubuntu 18.04ドライブを使用している場合)、「インストールせずにUbuntuを試してください」を選択すると、シャットダウン後も存続しないUbuntuインストールの完全なインスタンスが提供されます。起動したら、いくつかのオプションがあります。

コマンドラインの方法

ターミナルを開き、lsblkを実行します。元のインストールのドライブになるボリュームを探し、その番号をメモします(/ dev/sd#)

次に、mkdir -p /mnt/directoryでドライブのマウントポイントを作成し、Sudo mount /dev/sd# /mnt/directoryでドライブをマウントします。 cd /mnt/directoryでディレクトリに移動すると、インストールのルートディレクトリにいるはずですが、Sudoコマンドが機能しているはずです。 Sudo mv Apache2 etcを実行して、仮想的に動作しているOSを再起動します。

グラフィカルな方法

ディスクを検索して、ディスクユーティリティを開きます。インストールドライブのように見えるボリュームを選択し、マウントします。ファイルマネージャーを開き、マウントされたボリュームを選択し、/Apache2フォルダーを右クリックして名前を/etcに変更し、再起動します。

8
Minty
  1. 示されているようにブータブルUSBを作成します こちら

  2. here。 のようにキーを押してUSBから起動します

  3. gpartedを実行して、ファイルシステムパーティションを見つけます。 sdxyであるとします。

  4. ターミナルSudo mount /dev/sdxy /mntで実行

  5. ターミナルSudo mv /mnt/Apache2 /mnt/etcで実行

  6. / mntのファイルシステムで名前の変更を確認します。

  7. ターミナルSudo rebootで実行

  8. プロンプトが表示されたら、USBを取り外してEnterキーを押します

6
Vijay