User Tools

Site Tools


operating_systems:linux:debian:chmod_rescue

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
operating_systems:linux:debian:chmod_rescue [2012/12/07 10:46] – created tretoperating_systems:linux:debian:chmod_rescue [2013/07/24 07:15] (current) – [Prérequis] jzaehrin
Line 7: Line 7:
 Il est nécessaire d'avoir au moins un backup du système. Plus ce backup est proche de l'installation actuelle, plus la restauration des droits sera complète. Néanmoins, un backup proche de l'installation de base devrais suffire pour permettre un redémarrage du système. Il est nécessaire d'avoir au moins un backup du système. Plus ce backup est proche de l'installation actuelle, plus la restauration des droits sera complète. Néanmoins, un backup proche de l'installation de base devrais suffire pour permettre un redémarrage du système.
  
-Dans notre cas, le backup était une image complète de la carte flash (''dd if/dev/sdb | gzip > backup.hdd.gz'').+Dans notre cas, le backup était une image complète de la carte flash (''dd if=/dev/sdb of=~/backup.hdd'').
  
 ===== Sauvetage ===== ===== Sauvetage =====
  
-==== Montage du backup ====+==== Récupération des droits du backup ==== 
 + 
 +Il nous faut tout d'abord récupérer les droits de notre image de backup, en montant l'image comme un disque et en lisant les permissions de chaques fichiers.
  
 Création du point de montage : Création du point de montage :
-    mkdir /mnt/cf 
  
 +//root#// ''mkdir /mnt/cf.bck''
 +
 +Comme notre backup est une image complète du disque (incluant le MRB), il faut chercher la position de la partition dans l'image. Pour cela, on peut utiliser l'utilitaire ''parted''.
 +
 +//root#// ''parted ~/backup.hdd''
 +> ''GNU Parted 2.3''
 +> ''Using ~/backup.hdd''
 +> ''Welcome to GNU Parted! Type 'help' to view a list of commands.''
 +> ''(parted) **unit B**''
 +> ''(parted) **print**''
 +> ''Model:  (file)''
 +> ''Disk ~/backup.hdd: 4000317440B''
 +> ''Sector size (logical/physical): 512B/512B''
 +> ''Partition Table: msdos''
 +
 +> ''Number  Start   End          Size         Type     File system  Flags''
 +> ''     31744B  3999236095B  3999204352B  primary  ext4''
 +
 +> ''(parted) **quit**''
 +
 +L'information qui nous intéresse est la position ''Start'' de la partition (//31744//).
 +
 +On peut alors monter notre partition :
 +
 +//root#// ''mount -o loop,rw,offset=31744 ~/backup.hdd /mnt/cf.bck''
 +
 +Pour être sûr que les chemins soient correctes, on se ''chroot'' dans le backup :
 +
 +//root#// ''chroot /mnt/cf.bck''
 +
 +On lit alors les droits de chaques fichiers de notre backup et l'on crée un script qui réinitialisera notre système :
 +
 +//root@chroot#// ''find /mnt/cf.bck -exec stat --format "chmod %a /mnt/cf%n" {} \; > /restoreperms.sh''
 +
 +Comme l'on ne pourra probablement pas se chrooter dans le système, on rajoute un préfix au format de ''stat'' pour que tous nos chemins commence par ///mnt/cf//.
 +
 +On peur alors sortir du chroot :
 +
 +//root@chroot#// ''exit''
 +
 +==== Restauration des droits ====
 +
 +Création du point de montage pour le système :
 +
 +//root#// ''mkdir /mnt/cf''
 +
 +Montage du système :
 +
 +//root#// ''mount /dev/sdb1 /mnt/cf''
 +
 +Application des droits :
 +
 +//root#// ''bash /mnt/cf.bck/restoreperms.sh''
 +
 +On devrait pouvoir désormais démarrer sur le système.
 +
 +==== Réparations des programmes ====
 +
 +http://sysadminnotebook.blogspot.ch/2012/06/how-to-reset-folder-permissions-to.html
 +
 +===== Liens =====
 +
 +http://www.andremiller.net/content/mounting-hard-disk-image-including-partitions-using-linux
 +
 +http://sysadminnotebook.blogspot.ch/2012/06/how-to-reset-folder-permissions-to.html
 +
 + 
operating_systems/linux/debian/chmod_rescue.1354877191.txt.gz · Last modified: 2012/12/07 10:46 by tret