Changes

Jump to navigation Jump to search
25 bytes added ,  18:31, 16 August 2012
m
Fixed formatting
Line 5: Line 5:     
Step 1: Get access to read-write base image, note that I got loop2 and loop3 here, YMMV.  
 
Step 1: Get access to read-write base image, note that I got loop2 and loop3 here, YMMV.  
<nowiki>mkdir squashfs
+
<nowiki>mkdir squashfs
mount -o loop /run/media/*/LIVE/LiveOS/squashfs.img squashfs/
+
mount -o loop /run/media/*/LIVE/LiveOS/squashfs.img squashfs/
cp squashfs/LiveOS/ext3fs.img .</nowiki>
+
cp squashfs/LiveOS/ext3fs.img .</nowiki>
    
Step 2: Set up loopback and device mapper devices for persistent overlay, base device mapper and snapshot.
 
Step 2: Set up loopback and device mapper devices for persistent overlay, base device mapper and snapshot.
<nowiki>losetup -f ext3fs.img  
+
<nowiki>losetup -f ext3fs.img  
losetup -f /run/media/*/LIVE/LiveOS/overlay-*  
+
losetup -f /run/media/*/LIVE/LiveOS/overlay-*  
echo 0 $(blockdev --getsize /dev/loop2) linear /dev/loop2 0 |dmsetup create orig
+
echo 0 $(blockdev --getsize /dev/loop2) linear /dev/loop2 0 |dmsetup create orig
echo 0 $(blockdev --getsize /dev/mapper/orig) snapshot /dev/mapper/orig /dev/loop3 p 8 | dmsetup create top</nowiki>
+
echo 0 $(blockdev --getsize /dev/mapper/orig) snapshot /dev/mapper/orig /dev/loop3 p 8 | dmsetup create top</nowiki>
    
Step 3: Stop the snapshot device and merge the snapshot with the base
 
Step 3: Stop the snapshot device and merge the snapshot with the base
<nowiki>dmsetup suspend top
+
<nowiki>dmsetup suspend top
echo 0 $(blockdev --getsize /dev/loop2) snapshot-merge /dev/loop2 /dev/loop3 p 8 | dmsetup create mergeomatic && dmsetup status mergeomatic
+
echo 0 $(blockdev --getsize /dev/loop2) snapshot-merge /dev/loop2 /dev/loop3 p 8 | dmsetup create mergeomatic && dmsetup status mergeomatic
dmsetup status
+
dmsetup status
dmsetup remove mergeomatic</nowiki>
+
dmsetup remove mergeomatic</nowiki>
    
Step 4: Set the top device to no snapshot, and inspect the filesystem for results, if desired.
 
Step 4: Set the top device to no snapshot, and inspect the filesystem for results, if desired.
<nowiki>echo 0 $(blockdev --getsize /dev/loop2) linear /dev/loop2 0 | dmsetup load top
+
<nowiki>echo 0 $(blockdev --getsize /dev/loop2) linear /dev/loop2 0 | dmsetup load top
dmsetup resume top
+
dmsetup resume top
mkdir root
+
mkdir root
mount /dev/mapper/top root
+
mount /dev/mapper/top root
cd root
+
cd root
chroot .</nowiki>
+
chroot .</nowiki>
    
Step 5: Clean up.
 
Step 5: Clean up.
<nowiki>cd ..
+
<nowiki>cd ..
umount root
+
umount root
dmsetup remove top
+
dmsetup remove top
dmsetup remove orig
+
dmsetup remove orig
losetup -d /dev/loop2
+
losetup -d /dev/loop2
losetup -d /dev/loop3
+
losetup -d /dev/loop3
umount squashfs/</nowiki>  
+
umount squashfs/</nowiki>  
    
Step 6: Copy the root filesystem image back into the squashfs image, you may need -noappend  
 
Step 6: Copy the root filesystem image back into the squashfs image, you may need -noappend  
<nowiki>mksquashfs ext3fs.img /run/media/*/LIVE/LiveOS/squashfs.img</nowiki>
+
<nowiki>mksquashfs ext3fs.img /run/media/*/LIVE/LiveOS/squashfs.img</nowiki>

Navigation menu