J'utilise Ubuntu 18.04.
J'ai renommé le /etc
dossier en apache2
. C'était ma plus grande erreur
Maintenant, je ne peux pas le renommer parce que je dois l’utiliser sudo
, mais j’obtiens le message d'erreur.
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 disant cannot open password database
.
/mnt
, renommez, renommez.Réponses:
Un moyen simple de résoudre des problèmes comme celui-ci consiste souvent à démarrer à partir d'un système en direct, à monter la partition racine
/mnt
, puis à renommer 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 l'éditeur GRUB pour obtenir un shell racine et le renommer. le fichier.
Redémarrez ou éteignez, allumez et, si vous ne voyez pas normalement le menu GRUB au démarrage, appuyez sur Shiftou Escpour accéder au menu GRUB.
Déplacez le curseur vers le bas sur Options avancées pour Ubuntu et appuyez sur enter, puis appuyez sur epour modifier les options de démarrage (une seule fois - les modifications apportées ici ne seront pas permanentes, nous ne devrons donc pas nettoyer plus tard).
Vous verrez un écran qui ressemble à ceci 1 :
Déplacez le curseur vers le bas sur la ligne commençant par
linux
, puis déplacez le curseur jusqu'à 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 être/etc
en place.Ajoutez le texte
init=/bin/bash
et appuyez sur F10pour démarrer.Cela démarrera le système avec un shell Bash comme init. Vous obtiendrez un shell root 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
Maintenant, vous pouvez renommer
/etc
(vous voudrez peut-être d'ls
abord)Maintenant, vous pouvez redémarrer ou terminer le démarrage normalement à partir d’ici en demandant au shell root de se remplacer par le système init 3 normal :
J'ai testé cette procédure sur Ubuntu MATE 18.04.
1 Merci beaucoup à Kulfy d'avoir obtenu 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
/etc
de ce scénario, Bash en définira automatiquement un .3 Si
exec systemd
cela ne fonctionne pas pour vous,exec /sbin/init
devrait faire l'affaire. Si ce n'est pas le cas,readlink -e /sbin/init
devrait donner le chemin d'accès au programme init en cours d'exécution, que vous pouvez ensuite utiliserexec
avec son chemin d'accès complet. Si vous ne pouvez pas procéder de cette façon, entrez simplementreboot
.la source
F10
seulement quelques lignes apparaissent et s'arrête à l'écran vide. Pouvez-vous suggérer quelque chose?Si vous possédez une clé USB, vous devriez pouvoir l’amorcer et monter votre système de fichiers existant, puis renommer votre système à
/etc
partir de là. Voici un tutoriel sur la création d’une clé 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" et vous obtiendrez 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:
Manière en ligne de commande
Ouvrez un terminal et courez
lsblk
. Recherchez le volume qui correspond au lecteur de votre installation d'origine et notez le numéro (/ dev / sd #).Ensuite, créez un point de montage pour le lecteur avec
mkdir -p /mnt/directory
, puis montez le lecteur avecsudo mount /dev/sd# /mnt/directory
. Accédez au répertoire aveccd /mnt/directory
et vous devriez maintenant être dans le répertoire racine de votre installation, mais maintenant avec unesudo
commande de travail . exécutezsudo 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
/apache2
dossier et renommez-le/etc
, puis redémarrez.la source
sudo nautilus
partir du terminal. (Ubuntu utilise "nautilus" comme gestionnaire de fichiers de la même manière que Windows utilise "explorer".)sudo -H nautilus
éviter d'éviter que root ne devienne le propriétaire des fichiers de configuration$HOME
, ce qui les rendrait potentiellement inaccessibles aux programmes exécutés en tant qu'utilisateur ordinaire. Vous êtes probablement au courant de cela, mais je le mentionne pour les autres lecteurs.Créez une clé USB amorçable comme indiqué ici.
Démarrez depuis une clé USB en appuyant sur la touche comme indiqué ici.
Découvrez votre partition de système de fichiers en cours d'exécution
gparted
. Supposons que ce soit sdxy.Courir sur le terminal
sudo mount /dev/sdxy /mnt
Courir sur le terminal
sudo mv /mnt/apache2 /mnt/etc
Vérifiez votre système de fichiers dans / mnt pour le changement de nom.
Courir sur le terminal
sudo reboot
Lorsque vous y êtes invité, retirez la clé USB et appuyez sur Entrée.
la source
mount
programme est très strict et doit toujours être exécuté en tant que root; la seule exception à cette règle est lorsque le système de fichiers est dansfstab
et a l'user
option. Le programmeudisksctl
permet aux utilisateurs normaux de monter des périphériques, en utilisant par exempleudisksctl mount -b /dev/sda1
(il crée un point de montage approprié/media/$USER/
). Je n'ai pas essayé d'utiliserudisksctl
un système en direct, mais sur un système en direct, il s'agit toujours d'un utilisateur privilégié capable de s'exécutersudo
sans mot de passe, de sorte qu'il n'est pas nécessaire d'utiliser des utilitaires telsudisksctl
que ceux qui sont si utiles