J'ai rootfs /
Mais à l'intérieur de cela j'ai /mnt/another_rootfs
Qui contient un deuxième rootfs monté.
Je veux comparer les fichiers qu'ils contiennent ... mais quand je fais quelque chose comme: diff -r / /mnt/another_rootfs
Je commence à obtenir tous les points de montage comparés (ce qui ne m'intéresse pas tellement) mais aussi le /
rootfs contiendra également le deuxième /mnt/another_rootfs
... qui pose également problème.
Je veux donc vraiment faire la différence entre les fichiers qui sont réellement montés sur /
Et les fichiers montés sur /mnt/another_rootfs
Et ne pas rentrer dans d'autres montages.
Est-ce possible?
Vous pouvez monter la partition qui contient le /
- système de fichiers de l'installation actuellement démarrée à un deuxième point de montage et comparer ce point de montage avec le point de montage de l'autre /
-système de fichiers.
Utilisation lsblk -f
pour vérifier quelle partition est montée sur /
.
Montez ensuite la partition avec
Sudo mount -t ext4 /dev/sdXY /mnt (replace XY with the found value)
Comparer /mnt
avec le dossier qui est le point de montage de l'autre /
-système de fichiers.
Démonter avec Sudo umount /mnt
Une solution en ligne de commande est simple, lorsque vous inversez la question "Je veux diff /mnt/another_rootfs /
":
find /mnt/another_rootfs -xdev -type f -print0 | \
xargs -0 -r $HOME/bin/diffwithslash
Où $HOME/bin/diffwithslash
est quelque chose comme:
#!/bin/bash
while [[ $# -gt 0 ]] ; do
afile="$1"
shift
bfile="${afile#/mnt/another_rootfs}"
if [[ -f "$afile" ]] && [[ -f "$bfile" ]] ; then
diff "$bfile" "$afile"
fi
done
exit 0