web-dev-qa-db-fra.com

Après avoir renommé accidentellement / etc, comment puis-je le renommer?

J'utilise Ubuntu 18.04.

J'ai renommé le dossier /etc en Apache2. C'était ma plus grande erreur

Maintenant, je ne peux pas le renommer parce que je dois utiliser Sudo, mais lorsque j'essaie, le message d'erreur s'affiche.

Sudo: unknown uid 1000

Comment puis-je résoudre ce problème? Je n'ai pas de système actif pour démarrer, et en mode de récupération, le terminal root s'ouvre, puis se ferme en indiquant cannot open password database.

36
Racoon

Un moyen simple de résoudre des problèmes comme celui-ci consiste souvent à démarrer à partir d'un système en direct, montez la partition racine sur /mnt, puis renommez le fichier.

Si vous n'avez pas de système actif ou un moyen de le créer, ou si vous n'avez pas d'accès physique au système mais vous pouvez redémarrer et obtenir le menu GRUB, vous pouvez utiliser le GRUB éditeur pour obtenir un shell racine et renommer le fichier.

Redémarrez ou éteignez, allumez et, si vous ne voyez pas normalement le menu GRUB au démarrage, appuyez sur Shift ou Esc pour accéder au menu GRUB.

Déplacez le curseur vers le bas sur Options avancées pour Ubuntu et appuyez sur enter, puis appuyez e pour modifier les options de démarrage (une seule fois - les modifications apportées ici ne seront pas permanentes, nous n'aurons donc pas à nettoyer par la suite).

Vous verrez un écran qui ressemble à quelque chose comme ça1:

screenshot of GRUB menu editor

Déplacez le curseur vers le bas sur la ligne commençant par linuxname__, puis déplacez-le à la fin de cette ligne, ou n’importe où parmi les paramètres de démarrage du noyau. Assurez-vous que vous êtes sur la bonne ligne et tapez soigneusement ici, car le système peut ne pas démarrer sans /etc en place.

Ajoutez le texte init=/bin/bash et appuyez sur F10 pour démarrer.

Cela démarrera le système avec un shell Bash comme init. Vous obtiendrez un shell racine et le système de fichiers sera monté en lecture seule.2 Pour rendre le système de fichiers accessible en écriture, entrez la commande

mount -o remount,rw /

Maintenant, vous pouvez renommer /etc (vous voudrez peut-être lsen premier)

mv /Apache2 /etc

Maintenant, vous pouvez redémarrer ou terminer le démarrage normalement à partir d’ici en demandant au shell racine de se remplacer par le système init normal.3:

exec systemd 

J'ai testé cette procédure sur Ubuntu MATE 18.04.


1  Un grand merci à Kulfy pour l'obtention d'une capture d'écran de bonne qualité de l'éditeur GRUB de VirtualBox!
2 Bien que PATH ne puisse pas être défini à partir des fichiers de configuration de /etc dans ce scénario, Bash va en définir un automatiquement .
3 Si exec systemd ne fonctionne pas pour vous, exec /sbin/init devrait suffire. Si ce n'est pas le cas, readlink -e /sbin/init devrait donner le chemin d'accès au programme init qui devrait être en cours d'exécution, que vous pouvez ensuite execavec son chemin complet. Si vous ne pouvez pas procéder de cette façon, entrez simplement rebootname__.

63
Zanna

Si vous possédez une clé USB, vous devriez pouvoir l’amorcer et monter votre système de fichiers existant, puis renommer votre /etc à partir de là. Here est un tutoriel sur la création d'un USB en direct si vous en avez besoin.

Une fois démarré sur la clé USB en direct (si vous utilisez un lecteur Ubuntu 18.04), sélectionnez "Essayer Ubuntu sans installer". Il vous donnera essentiellement une instance complète d’une installation Ubuntu qui ne persistera pas après l’arrêt. Une fois démarré, vous avez quelques options:

Voie de commande

Ouvrez un terminal et exécutez lsblk. Recherchez le volume qui correspond au lecteur de votre installation d'origine et notez le numéro (/ dev/sd #).

Créez ensuite un point de montage pour le lecteur avec mkdir -p /mnt/directory, puis montez le lecteur avec Sudo mount /dev/sd# /mnt/directory. Accédez au répertoire avec cd /mnt/directory et vous devriez maintenant vous trouver dans le répertoire racine de votre installation, mais maintenant avec une commande Sudo qui fonctionne. lancez Sudo mv Apache2 etc et redémarrez dans votre système d'exploitation hypothétiquement actif.

Manière graphique

Ouvrez l'utilitaire de disques en recherchant des disques. Sélectionnez le volume qui ressemble à votre lecteur d'installation et montez-le. Ouvrez le gestionnaire de fichiers et sélectionnez le volume monté, cliquez avec le bouton droit sur votre dossier /Apache2 et renommez-le en /etc, puis redémarrez.

8
Minty
  1. Rendre USB amorçable comme indiqué ici.

  2. Démarrez depuis l’USB en appuyant sur la touche comme indiqué ici.

  3. Découvrez votre partition de système de fichiers en exécutant gparted. Supposons que ce soit sdxy.

  4. Exécuter sur le terminal Sudo mount /dev/sdxy /mnt

  5. Exécuter sur le terminal Sudo mv /mnt/Apache2 /mnt/etc

  6. Vérifiez votre système de fichiers dans/mnt pour le changement de nom.

  7. Exécuter sur le terminal Sudo reboot

  8. Lorsque vous y êtes invité, retirez la clé USB et appuyez sur Entrée.

6
Vijay