2019-07-21: Création
2019-07-28: Nouvelle stratégie de disque
2019-08-09: Backup vers NAS
2019-08-17: NAS QNAP → Disk1 DATA
Suite à un freeze du PC suivi d'un power off forcé, voici l'accueil du reboot suivant :
Le système n'arrive pas à monter la partition /dev/sda6 qui correspond à /home.
Il semple y avoir une incohérence dans le système de fichier BTRFS.
Le principe est de :
Utilisation de dd, création de l'image sans compression :
# dd if=/dev/sda6 of=/mnt/wd-1to/pc-jc-debian-home/image.sda6.home.201-07-21 bs=4096 conv=notrunc,noerror status-progress
Pour la petite histoire, j'ai refait l'image le lendemain, le 22 car j'ai halt le PC sans unmount le disque externe. Donc dans le doute j'ai supprimé et recommencé l'image avec dd.
Les commandes suivantes n'ont rien données :
# btrfs check --readonly -p /dev/sda6 # mount -o ro,usebackuproot /dev/sda6 /mnt # btrfs rescue zero-log /dev/sda6 # btrfs check /dev/sda6 # btrfs check --repair /dev/sda6 # btrfsck --init-extent-tree /dev/sda6
J'ai presque appris par cœur ce retour d’expérience :
linuxfr.org/.../btrfs-restore-a-la-rescousse
Donc voici la commande btrfs de restauration vers un autre disque :
# yes | btrfs restore -s -x -m -S -v -i -o /dev/sda6 /mnt/usb-8go/
Explications : (de raphj linuxfr.org/.../btrfs-restore-a-la-rescousse
Testé vers une clé USB 8go avec un Ctrl+C juste pour voir, en attendant l'arrivé d'un disque dur pour recevoir la restauration, et qui finira dans un NAS (c'était prévu, c'est le moment d'upgrader le 160go en 4to ).
GNU Linux est définitivement plein d'utilitaires de dingue !
La commande file retrouve plein d'info sur l'image dd
(j'ai juste ajouté qq passage à la ligne pour la lisibilité)
$ file -s image.sda6.home.2019-07-22 image.sda6.home.2019-07-22: BTRFS Filesystem label "DATA", sectorsize 4096, nodesize 16384, leafsize 16384, UUID=d4c14b15-8cda-41ee-b83d-71fa77b927d5, 336804290560/634998751232 bytes used, 1 devices
# parted image.sda6.home.2019-07-22 unit s print Modèle: (file) Disque /media/jc/My_Passport/pc-jc-ssd-debian-home/image.sda6.home.2019-07-22 : 1240231936s Taille des secteurs (logiques/physiques): 512B/512B Table de partitions : loop Disk Flags: Numéro Début Fin Taille Système de fichiers Fanions 1 0s 1240231935s 1240231936s btrfs
Grace à parted, on vois qu'il n'y a pas d'offset comme dans cet exemple: can-i-mount-a-partition-from-a-full-drive-image
donc offset = 2048 x 512 = 1048576
donc calcul de l'offset = 0 x 512 = 0
# mount -t btrfs -o ro,loop,offset=0 image.sda6.home.2019-07-22 /mnt/debian-home-sda6-img
# losetup -Prf image.sda6.home.2019-07-22
# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ntfs 7616AE0F16ADD103 ├─sda2 ntfs 985EA4E05EA4B900 ├─sda3 ├─sda5 btrfs SYSTEM 8062d387-20e4-4ad0-92cd-2087f55142d1 ├─sda6 btrfs DATA d4c14b15-8cda-41ee-b83d-71fa77b927d5 └─sda7 swap 1d410210-c509-4894-b010-cc9becb30bb1 sdb ├─sdb1 vfat RECOVERY 32EC-CB7F ├─sdb2 ntfs OS AAA6F0E3A6F0B0C5 ├─sdb3 ntfs LOGICIELS BC6652E266529D48 ├─sdb4 ├─sdb5 ntfs HOME_COMMUN 8CDE58D8DE58BC60 /media/home_commun ├─sdb6 swap 266a37d4-4cf9-4d8d-b8f2-1b671ceadfe1 ├─sdb7 ext4 74ddd380-7130-4399-b561-41124928cad0 / └─sdb8 ext4 836cf27d-d1cd-4daa-b688-7f7de6abc221 /home sdg └─sdg1 ntfs My_Passport 97E68384FF65B81B /media/jc/My_Passport sr0 loop0 btrfs DATA d4c14b15-8cda-41ee-b83d-71fa77b927d5 loop1 squashfs /snap/spotify/35 loop2 btrfs DATA d4c14b15-8cda-41ee-b83d-71fa77b927d5 loop3 squashfs /snap/core/7270 loop4 squashfs /snap/core/6964 loop5 squashfs /snap/spotify/36
# mount -r /dev/loop0 /mnt/debian-home-sda6-img/
Exemple /dev/loop0 vers une clé usb :
# yes | btrfs restore -s -x -m -S -v -i -o /dev/loop0 /media/jc/USB/
Suite à ce crash, je décide de mettre en place une nouvelle stratégie de stockage sur le PC.
Ce PC portable accueil 2 disques :
Ca sent le script qui pique les yeux !
-DISQUE 1----------------- | win7 | debian | debian | | | / | /home | | ntfs | btrfs | btrfs | -------------------------- | | | dd dd rsync | | | v v v -DISQUE 2----------------- | backup + snapshot | | btrfs |---------------- -------------------------- | | | rsync rsync | | v v -NAS QNAP----------------- -DISK EXTERNE------------- | 4to ext4 | | 750go | | Rotation dossiers horo. | | Dock station usb3 | -------------------------- --------------------------
Suppression de la partition existante avec fdisk:
Visu des disques avec fdisk -l :
Formatage du disque 2 avec mkfs.btrfs :
Visu des disques avec fdisk -l :
Visu des disque avec btrfs filesystem show :
Montage du disque 2 :
# mount -t btrfs /dev/sda6 /home
# mount -t ntfs /dev/sdb1 /media/jc/WD-1to/
$ sudo time dd if=/dev/sda5 of=/media/user/BACKUP/sda5-SYSTEM/sda5-debian-system-2019-08-12_before-upgrade-debian-10.0.img bs=4096 conv=notrunc,noerror status=progress 49643884544 bytes (50 GB, 46 GiB) copied, 105 s, 473 MB/s 12206848+0 records in 12206848+0 records out 49999249408 bytes (50 GB, 47 GiB) copied, 106.681 s, 469 MB/s 6.21user 71.90system 1:46.71elapsed 73%CPU (0avgtext+0avgdata 1980maxresident)k 97654856inputs+97654912outputs (5major+96minor)pagefaults 0swaps
$ rsync -avp --delete jc/ /media/jc/BACKUP/jc/ [...] sent 183,607,789,776 bytes received 10,932,404 bytes 223,244,647.03 bytes/sec total size is 440,659,881,860 speedup is 2.40
après suppression des VMs :
$ rsync -avp --delete jc/ /media/jc/BACKUP/jc/ [...] deleting VirtualBox VMs/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)/Logs/VBox.log.3 deleting VirtualBox VMs/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)/Logs/VBox.log.2 deleting VirtualBox VMs/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)/Logs/VBox.log.1 deleting VirtualBox VMs/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)/Logs/VBox.log deleting VirtualBox VMs/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)/Logs/ deleting VirtualBox VMs/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)_2019-03-05-disk001.vmdk deleting VirtualBox VMs/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b).vbox-prev deleting VirtualBox VMs/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b).vbox deleting VirtualBox VMs/TIA PORTAL V14 SP1 UP7 (W7 SP1 64b)/ deleting VirtualBox VMs/Debian Stretch 9.5 non-free/Logs/VBox.log.3 deleting VirtualBox VMs/Debian Stretch 9.5 non-free/Logs/VBox.log.2 deleting VirtualBox VMs/Debian Stretch 9.5 non-free/Logs/VBox.log.1 deleting VirtualBox VMs/Debian Stretch 9.5 non-free/Logs/VBox.log deleting VirtualBox VMs/Debian Stretch 9.5 non-free/Logs/ deleting VirtualBox VMs/Debian Stretch 9.5 non-free/Debian Stretch 9.5 non-free_2018-11-17a-disk002.vmdk deleting VirtualBox VMs/Debian Stretch 9.5 non-free/Debian Stretch 9.5 non-free.vbox-prev deleting VirtualBox VMs/Debian Stretch 9.5 non-free/Debian Stretch 9.5 non-free.vbox deleting VirtualBox VMs/Debian Stretch 9.5 non-free/ deleting VirtualBox VMs/Debian Stretch 9.5 Docker/Logs/VBox.log deleting VirtualBox VMs/Debian Stretch 9.5 Docker/Logs/ deleting VirtualBox VMs/Debian Stretch 9.5 Docker/Debian Stretch 9.5 Docker.vbox-prev deleting VirtualBox VMs/Debian Stretch 9.5 Docker/Debian Stretch 9.5 Docker.vbox deleting VirtualBox VMs/Debian Stretch 9.5 Docker/Debian Stretch 9.5 Docker-disk1.vmdk deleting VirtualBox VMs/Debian Stretch 9.5 Docker/ VirtualBox VMs/ sent 65,584,754 bytes received 305,898 bytes 630,532.56 bytes/sec total size is 377,256,182,225 speedup is 5,725.49
$ rsync -avp --delete /media/jc/BACKUP/jc/ jc@192.168.1.202:~/rsync/jc-portable/jc/ [...] sent 377,463,892,679 bytes received 33,834,990 bytes 11,936,120.90 bytes/sec total size is 377,256,182,225 speedup is 1.00 rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2]
Variante :
$ time rsync -a --delete --progress /media/jc/BACKUP/sda6-DATA/jc/ jc@192.168.1.202:~/rsync/jc-portable/jc/ sent 10,877,075,811 bytes received 2,937,754 bytes 6,338,487.37 bytes/sec total size is 387,710,351,768 speedup is 35.64 rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1196) [sender=3.1.2] real 28m36,483s user 3m46,664s sys 2m33,300s
Exemple de restauration de données depuis un NAS vers le dossier user, avec un fichier d'exclusion de dossier :
$ pwd /home/jc $ time rsync -a --progress --exclude-from=rsync-exclude.txt jc@192.168.1.202:~/rsync/jc-portable/jc/ ~ [...] real 238m37,763s user 78m5,333s sys 45m18,364s
Avec rsync-exclude.txt
.ICEauthority .Xauthority .bash_history .bash_logout .bashrc .cache/ .config/ .dbus/ .directory .dmrc .gnupg/ .java/ .kde/ .lesshst .local/ .mozilla/ .nv/ .nvidia-settings-rc .pki/ .profile .pulse-cookie .python_history .selected_editor .steam/ .steampath@ .steampid@ .xfce4-session.verbose-log .xfce4-session.verbose-log.last .xsession-errors .xsession-errors.old