Ситуация такова, из под другой ос в которой /dev/sda не примонтирован, делаем бэкап всего устройства (dd if=/dev/sda /media/33_backups/systems/2014_30_01_ssd.img), на устройстве венигрет из разных разделов и ФС, мне нужен полный слепок винта.
Перезагружаемся в рабочую ОС с этого же винта, корень у нас /dev/sda7, home - /dev/sda8, btrfs.
Бэкап-образ есть все нормально файл 128Гб, все хорошо. Далее мне понадобилось сравнить какие файлы изменились, на /dev/sda8 по отношению к бэкап-образу. Следовательно мне надо две одинаковые примонтированные ФС с живого винта и из образа всего этого винта в разных каталогах.
Пытаемся залупить и примонтировать:
sudo losetup -fv /media/backup/sda.dd
...
losetup выведет на экран имя использованного устройства - если вы не работаете с другим файлами-образами (iso, шифрованными контейнерами и пр.), это скорее всего будет /dev/loop0
Теперь мы имеем устройство, являющееся для системы жестким диском, но не имеем доступа к его разделам. Добраться до разделов поможет программа kpartx (может потребоваться установка одноименного пакета)
sudo kpartx -av /dev/loop0
...
Программа выведет имена созданных устройств для разделов диска: loop0p1 для первого раздела, loop0p2 - для второго, по аналогии с разделами обычного диска. Файлы устройств будут находиться в папке /dev/mapper
Теперь можно работать с разделами и ФС на них. Например, смонтировать бывший sda5 и записать на него файлы
sudo mount /dev/mapper/loop0p8 /mnt
Луп устройство коннектится, разделы раскрываются в /dev/mapper/, но далее видим очень грустную картину:
└──▶ sudo losetup -a
/dev/loop0: [0826]:1069058 (/media/33_backups/systems/2014_30_01_ssd.img)
└──▶ sudo fdisk -l /dev/loop0
Disk /dev/loop0: 128.0 GB, 128043712512 bytes
255 heads, 63 sectors/track, 15567 cylinders, total 250085376 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b9a2a
Device Boot Start End Blocks Id System
/dev/loop0p1 * 2048 41512959 20755456 7 HPFS/NTFS/exFAT
/dev/loop0p2 41515006 250068991 104276993 5 Extended
/dev/loop0p5 41515008 78637055 18561024 83 Linux
/dev/loop0p6 78639104 90982399 6171648 83 Linux
/dev/loop0p7 90984448 130043903 19529728 83 Linux
/dev/loop0p8 130045952 169105407 19529728 83 Linux
/dev/loop0p9 169107456 232597503 31745024 7 HPFS/NTFS/exFAT
└──▶ sudo kpartx -al /dev/loop0
loop0p1 : 0 41510912 /dev/loop0 2048
loop0p2 : 0 2 /dev/loop0 41515006
loop0p5 : 0 37122048 /dev/dm-1 2
loop0p6 : 0 12343296 /dev/dm-1 37124098
loop0p7 : 0 39059456 /dev/dm-1 49469442
loop0p8 : 0 39059456 /dev/dm-1 88530946
loop0p9 : 0 63490048 /dev/dm-1 127592450
└──▶ ls /dev/mapper/
control loop0p1 loop0p2 loop0p5 loop0p6 loop0p7 loop0p8 loop0p9
└──▶ sudo mount -o ro /dev/mapper/loop0p8 /mnt/08
[sudo] password for a3d:
mount: /dev/mapper/loop0p8 already mounted or /mnt/08 busy
└──▶ mount | column -t
/dev/sda7 on / type btrfs (rw,subvol=@)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sdb2 on /boot type ext4 (rw)
/dev/sda8 on /home type btrfs (rw,subvol=@home)
(rw,nosuid,nodev,uhelper=udisks)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/a3d/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=a3d)
/dev/sdc6 on /media/33_backups type ext4
└──▶ ll /mnt/08
total 0
drwxr-xr-x 1 root root 0 марта 20 2013 ./
drwxr-xr-x 1 root root 48 марта 20 2013 ../
А маунт то меня посылает в пешее путешествие (см. листинг выше^):
mount: /dev/mapper/loop0p8 already mounted or /mnt/08 busyЕсли же, попробовать примонтировать какой-то другой раздел из бэкап-образа, который с реального винта не примонтирован, то всё окей, доказательства:
└──▶ sudo mount -o ro /dev/mapper/loop0p6 /mnt/06
└──▶ ls /mnt/06
a3d ftp lost+found netlogon pdf-documents
┌─(a3d) (~) 31 Jan ↓ 1.13 GiB ↑ 11.05 GiB ∑ ↓ 414.83GiB ↑ 1.01TiB
└──▶ mount | column -t
/dev/sda7 on / type btrfs (rw,subvol=@)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
/dev/sdb2 on /boot type ext4 (rw)
/dev/sda8 on /home type btrfs (rw,subvol=@home)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/a3d/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=a3d)
/dev/sdc6 on /media/33_backups type ext4 (rw,nosuid,nodev,uhelper=udisks)
/dev/mapper/loop0p6 on /mnt/06 type ext4 (ro)
Итак мне нужно на рабочей системе два смонтированных одинаковых раздела, один из /dev/sdaX, другой из бэкап-образа /dev/mapper/loop0pX
Куда копать?