martes, 25 de agosto de 2015

Easy2boot: Persistencia y cambiar tamaño de archivo loopback (casper-rw)

Supongamos que tenemos un USB con EASY2boot instalado y queremos tener persistencia.

1) Persistencia:

Creamos un archivo de persistencia, dos formas posibles:

a) Windows:

Usando RMPrepUSB: le damos al botón "Create ext2 FS", fijamos 4GB, de nombre de archivo casper-rw (o el nombre que queramos) y de nombre de volumen casper-rw 

b) Linux:

Nos vamos a la raiz del usb y ejecutamos como root
dd if=/dev/zero of=casper-rw bs=1M count=4096
mke2fs -m 0 -F casper-rw

2) Menú de Arranque:

Supongamos que tenemos una iso de ubuntu copiada en ( _ISO/LINUX/ubuntu-14.04.3-desktop-amd64.iso ), debemos crear un archivo llamado
_ISO/LINUX/ubuntu-14.04.3-desktop-amd64.mnu con el siguiente contenido:

# Make a ext2 file using RMPrepUSB in the root of the drive (i.e. File Name=Ubuntu1304-rw  Volume Name=casper-rw)
# Place this .mnu file and the Ubuntu ISO in (_ISO\xxx\MNU), e.g. \_ISO\MainMenu\MNU or \_ISO\Linux\MNU
# This menu will work even on an NTFS USB boot drive
# IMPORTANT: you MUST run WinContig (Ctrl+F2) before booting E2B.


iftitle [if exist $HOME$/ubuntu-14.04.3-desktop-amd64.iso] Ubuntu 14.04.3 PERSISTENT casper\n Boot using .mnu file with persistence

set ISO=$HOME$/ubuntu-14.04.3-desktop-amd64.iso
set PF=/casper-rw

if "%E2BDEV%"=="" set E2BDEV=hd0 && pause E2BDEV forced to hd0!
if exist CD echo WARNING: Cannot use partnew command! && pause && configfile (bd)/menu.lst
#enable parttype output
debug 1
# make empty table entry in 3rd position in ptn table
parttype (%E2BDEV%,2) | set check=
debug off
set check=%check:~-5,4%
if "%check%"=="0x00" partnew (%E2BDEV%,2) 0 0 0
if not "%check%"=="0x00" echo WARNING: PTN TABLE 3 IS ALREADY IN USE - PERSISTENCE MAY NOT WORK! && pause
debug 1
if not exist %PF% echo WARNING: %PF% persistence file not found! && pause
errorcheck off
if "%check%"=="0x00" partnew (%E2BDEV%,2) 0x0 %PF%
errorcheck on
#map ptn 4 to ISO
partnew (%E2BDEV%,3) 0x0 %ISO%
map %ISO% (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz.efi  boot=casper persistent noeject noprompt quiet splash --
initrd /casper/initrd.lz 

4) Defragmentar:

Si vamos usar Easy 2 boot  (E2B) el archivo debe de estar defragmentado, si el USB donde está el archivo casper-rw es NTFS debemos usar windows para defragmentarlo, concretamente:

Ejecutar en stick USB MAKE_THIS_DRIVE_CONTIGUOUS.cmd desde el raiz del USB o _ISO/docs/WINCONTIG/WinContig.exe o  _ISO/docs/WINCONTIG/MAKE_THIS_DRIVE_CONTIGUOUS.cmd

PD: también se podría usar linux con rsync pero es más rápido y menos engorroso usar las herramientas de defragmentación en windows.

5) Ampliar archivo de loopback desde linux:

El usb tiene que estar en formato NTFS, si está en Fat32 el tamaño máximo de archivo es de 4GB.

Supongamos que tenemos el archivo casper-rw con ext2 y 4 Gigas de espacio. Para ampliarlo otros 4 GB (8 GB en total).
Por si acaso algo sale mal primero haz una copia del archivo en tu disco duro u otro sitio.

dd if=/dev/zero of=casper-rw bs=1M count=4096 oflag=append conv=notrunc
e2fsck -f of=casper-rw
resize2fs casper-rw
e2fsck -f of=casper-rw

y volvemos a defragmentar (paso 4)

Enlaces:
http://www.easy2boot.com/