Installing to a USB Flash Drive-es

From DSL Wiki

   [Volver a la Pagina principal]  [In other languajes: english, 中文版 (chino)]

Contents

Antes de ir mas lejos

Salva todos tus datos de tu USB en otro medio de almacenamiento, como un CD/DVD o disco duro.

Requisitos

Unidad USB de al menos 128 MB. Preferiblemente 512 MB o mas. Con 64 MB se puede hacer, pero apenas quedaria espacio para personalizar.

Desde DSL

Algunas cosas han cambiado desde que se escribió originalmente esta página. Desde entonces, hay un método fácil (y funcional) para instalar DSL en tu unidad flash USB desde dentro de el menú principal del LiveCD de DSL. Simplemente abre el menú principal, ve a apps y luego a tools y selecciona USBZIP o USBHDD y sigue las inscrucciones. Mira la pagina arranque USB para más información.


Desde Linux

Identificar la unidad flash

Comienza por determinar la localizacion de tu unidad flash. Sera algo asi como /dev/sda

   fdisk -l

Comprueba la version de tu syslinux y actualizala su quieres soporte a FAT32. (Syslinux 2.11 funciona con FAT16; Syslinux 3.35 funciona con FAT32) Compila e instala el ultimo syslinux de http://www.kernel.org/pub/linux/utils/boot/syslinux o http://www.eu.kernel.org/pub/linux/utils/boot/syslinux/

Opcional: Reemplazar MBR

Si necesitas limpiar el registro maestro de arranque (MBR) del disco Flash, hazlo con un comando como el de abajo. Esto no deberia ser necesario salvo que haya otro gestor de arranque cachondo en el MBR (como, si hubieras estado esperimentando con otra distro linux para USB autoarrancable).

(¡¡¡SE *MUY* CUIDADOSO PARA NO LIMPIAR TU DISCO DURO AQUI!!!) Reemplaza sdX con la ruta a tu unidad USB

   dd if=/dev/zero of=/dev/sdX bs=512 count=1
Aquí hay dos maneras de reemplazar el MBR
Usando el archivo 'mbr.bin' del paquete Syslinux:
   locate mbr.bin
   cat /somepath/share/syslinux/mbr.bin > /dev/sdX
Usando ms-sys:
instala http://ms-sys.sourceforge.net y pon otro MBR en su lugar:
   ms-sys -s /dev/sdX

Formatear la unidad flash

Ejecuta fdisk sobre /dev/sdX, de tal modo que tenga esta pinta:

    Device Boot      Start         End      Blocks   Id  System
 /dev/sdX1   *           1        1021      253177    b  W95 FAT32

Usa d para borrar particiones existentes hasta que no quede ninguna. Usa n,p,1 para crear una particion primaria nueva. Usa a para hacerla arrancable. Usa t,b para formatearla como W95 FAT32. No olvides teclear 'a' para hacerla arrancable.

Usa w para grabar los datos y salir.


Crea una particion FAT16 o FAT32 en el pendrive. ("-F 32" creara una particion FAT32; "-F 16" hara una de FAT16)

       mkfs.vfat -F 32 /dev/sdX1

Instalar DSL

  • Descarga el archivo comprimido dsl-embedded.zip.
  • Monta el pendrive y descomprime el archivo dsl-embedded.zip en el pendrive.
  • Desmonta el pendrive.
  • A continuacion emplea syslinux para para hacerlo arrancable.
       syslinux -s /dev/sdX1
  • Ahora puedes arrancar mediante QEMU (desde dentro de Linux o windows), O directamente desde la unidad USB (ver abajo).
  • Tambien puedes arrancar DSL desde un menu del gestor de arranque GRUB en tu pastilla USB. Esto es muy util si estas usando DSL como parte de un kit de herramientas de rescate de datos/sistema, porque puedes incluir multiples configuraciones preestablecidas de DSL, asi como otras utilidades.

Nota: syslinux necesita el paquete "mcopy" incluido en el paquete "mtools".

Nota: Por desgracia, este metodo NO proporciona una distribucion Linux de 50MB porque el directorio y el metodo qemu es (comparativamente) grande. Terminaras con una distribucion de 110 MB.

Nota: La opcion iocharset=utf8 al montar la pastilla USB puede derivar en que no se encuentre "KNOPPIX/KNOPPIX" al arrancar.

Metodo I. Empleando GRUB como gestor de arranque.

Nota: Se ha detectado que este metodo no funciona en ciertas circunstancias

  • Descarga la imagen .iso del CD de DSL actual.
  • Crea una particion ext2 (>= 51 MB) en el pendrive. Montala.
   mke2fs -v -L "DSL" /dev/<device>
   mkdir -p /tmp/pendrive
   mount /dev/<dispositivo> /tmp/pendrive/

donde where <dispositivo> es el archivo correspondiente que representa tu dispositivo/partición de almacenamiento USB.

Nota: ext3 tambien vale.

  • Cambia de directorio a donde montaste la partition ext2, instala el gestor de arranque GRUB:
   cd /tmp/pendrive/
   grub-install --no-floppy --root-directory=. /dev/<dispositivo>

Nota: Reemplaza <dispositivo> por el archivo correspondiente que representa tu dispositivo de almacenamiento USB. Por ejemplo /dev/sdc1

Nota 2: Este metodo no me funciono, emplee el metodo manual de ejecutar grub e introduje "root (hd1,1)" y "setup (hd1)" (tus rutas variaran probablemente).

  • Copia los contenidos de la imagen del CD en la unidad USB.
  mkdir /tmp/dsl-cd
  mount [/path_to/]current.iso /tmp/dsl-cd/ -o loop
  cp -vR /tmp/dsl-cd/* /tmp/pendrive/
  • Permaneciendo en el mismo directorio - conde montaste el sistema de archivos ext2 - crea un archivo menu.lst para GRUB en el directorio ./boot/grub/menu.lst
  cat > /tmp/pendrive/boot/grub/menu.lst << EOF
  title Damn Small Linux
  root (hd0,0)
  kernel /boot/isolinux/linux24 root=/dev/sda1 ro lang=us toram noeject frugal
  initrd /boot/isolinux/minirt24.gz
  boot
  EOF

Nota: Quiza tengas que cambiar (hd0,0) por la particion correcta para tu unidad USB. No obstante, el valor por defecto deberia funcionar en la mayoria de sistemas.

  • Desmonta el sistema de archivos
  • Ahora puedes arrancar desde tu dispositivo de almacenamiento USB.

Metodo II. Empleando GRUB como gestor de arranque.

Alguien encontro que el proceso anterior no funciona y ha documentado este proceso

La Situacion:

  • Ejecutando SLED 10 (Suse)
  • El lapiz USB es de 1GB y aparece como /dev/sda
  • Logeado como root
  • La ISO de DSL esta descargada a /root/Desktop/dsl-3.3.iso
  • Dos particiones, la primera para usar como almacenamiento USB general, la segunda para DSL
  • Se quiere que la particion DSL sea ext2 (ext3 es un sistema de ficheros con diario, lo cual no es recomendable para las unidades flash ya que se pueden reescribir un número bajo de veces, comparado con los discos duros magnéticos para los cuales el ext3 fue desarrollado) para que Windows no la descaraje.
  • La primera partición tiene que ser la de almacenamiento masivo porque a Windows no le gusta direccionar la segunda particion en unidades flash.


El proceso:

  • fdisk /dev/sda
    • d - Borra todas las particiones del lapiz USB
    • n - Crea una particion
      • p - Particion primaria para almacenamiento general
      • 1 - Primera particion
      • 1 - Desde el prier bloque
      • 948 - Casi todo el espacio, unos 933 MB
    • n - Crea una particion
      • p - Particion primaria para DSL
      • 2 - Segunda particion
      • 949 - Comienza en el siguiente sector disponible
      • 1012 - Hasta el final del disco. Le doy 64 MB
    • a - Hace la particion autoarrancable
      • 2 - Marca la particion de DSL como autoarrancable
    • t - Cambia el formato de la particion
      • 1 - Cambia la particion 1
      • b - La cambia a Win95 FAT32
    • w - Graba lo cambios
  • fdisk -l - Arroja la siguiente salida:
        Device    Boot      Start         End      Blocks   Id  System
	/dev/sda1               1         948      954131+   b  W95 FAT32
	/dev/sda2   *         949        1012       64416   83  Linux

Tu unidad flash debiera ahora tener esta pinta

  • mkdir /mnt/iso
  • mkdir /mnt/usb
  • mount -o loop /root/Desktop/dsl-3.3.iso /mnt/iso
  • mke2fs /dev/sda2
  • mount /dev/sda2 /mnt/usb/
  • cd /mnt/iso
  • tar cvf - . | (cd /mnt/usb; tar xvf - )
  • mkdir /mnt/usb/boot/grub
  • cp /boot/grub/*stage* /mnt/usb/boot/grub/
  • cat > /mnt/usb/boot/grub/menu.lst << EOF
   title Damn Small Linux
   root (hd0,1)
   kernel /boot/isolinux/linux24 root=/dev/sda2 ro lang=us toram noeject frugal
   initrd /boot/isolinux/minirt24.gz
   boot
   EOF
  • cd /mnt/usb/
  • grub-install --no-floppy --root-directory=. /dev/sda
  • cd /root
  • umount /mnt/usb
  • umount /mnt/iso
  • rm -r /mnt/iso
  • rm -r /mnt/usb

Desde Windows.

Nota: Esta guia asume que tu unidad flash USB es "F:". Por favor, reemplaza "F" por la letra de unidad correcta.

Hay 2 metodos. Para cualquiera de ellos necesitaras:

Metodo I

  1. Formatea tu unidad flash desde cmd.exe (la ventana "DOS") teclea:
    FORMAT F: /fs:FAT32
  2. Descomprime "dsl-embedded.zip" a tu unidad flash (podrias usar el "Extraer todos los archivos" que viene integrado en XP con destino a "F:\")
  3. Descarga "syslinux-3.63.zip" de Syslinux - Syslinux tambien se puede emplear para varias otras plataformas, como Unix.
  4. Ve a una ventana de DOS y ejecuta syslinux para tu unidad desde \win32\syslinux.exe escribiendo: SYSLINUX -ma F:
  5. Si estas en Windows Vista, recuerda arrancar cmd.exe como Administrador, porque como usuario normal no sera capaz de acceder al registro maestro de arranque (MBR) de tu unidad USB.
  6. Reinicia


Nota: Arrancar desde USB puede o no funcionar con tu ordenador, principalmente dependiendo de su edad y su configuración BIOS. Algunos sistemas podrian tener problemas para arrancar desde unidades USB formateadas como FAT32. Cambiar el paso del formateo a
FORMAT F: /fs:FAT
podria permitirte arrancar DSL.


Nota: Aqui la cosa ya depende del caso: Hay quien informa que no funciona y quienes aseguran que si.

  • (Probado 27/9/07 en un Hp T5515 thinclient. Funciono sin problemas. Unidad de 512 MB generica, FAT32, DSL embedded 3.4.3).
  • (Probado 16/19/07 en un PC dual core personalizado. Funciono sin problemas con una unidad Adata JOGr de 2 GB, FAT32, DSL embedded 3.4.4).
  • (Probado 25/11/07 en un Asus EEEpc. Funcionó sin problemas. Unidad de 128 MB generica, FAT32, DSL embedded 4.0).
  • (Probado 12/12/07 en un Memorex Traveldrive. Funciono sin problemas. Unidad 1GB, FAT32).
  • En un Packard Bell Easynote XS20-005, arrancado desde un Apacer Handy Steno AH123 (1Gb, FAT32) con dsl-4.2.5-embedded y parámetros de arranque "dsl vga=normal", xvesa 800x600x32, comienza a arrancar pero se para mostrando un error de insmod.
  • No arranca desde un lápiz USB genérico de 256 MB en un Packard Bell Easynote XS20-005, probando tanto FAT como FAT32.
  • (Probado 22/4/08 en un Dell Inspiron 600m usando Sandisk Cruzer de 1GB, DSL Embedded 4.2.5 FAT32 - Funciono sin problemas).
  • (Probado 27/7/08 en One Mini Notebook A120. Funcionó sin problemas. Unidad genérica de 128 MB, FAT32, DSL embedded 4.2.5)
  • (Probado 10/8/08 en un Compaq 2190US Laptop con un USB Lexar Lightning de 4 GB y DSL embedded 4.2.5. El USB apareció como 2º disco duro por defecto, así que tuve que ir a la BIOS de Compaq y cambiar el orden para que el USB Lexar fuera el primero. Al reiniciar, el 2190US arrancó DSL sin problemas).

Metodo II

Nota: La utilidad HP USB Key "setup" solo funciona con Windows Vista si ejecutas la instalación en modo de compatibilidad. Para aplicar esto, haz click con el botón derecho del ratón sobre el archivo de instalación y ve a "Propiedades". Abre la solapa "Compatibilidad" y selecciona "Windows XP Service Pack 2". Aplica y funcionará también en Vista. Nota: No necesitas ejecutar el programa instalado en este modo, solo el instalador.

Para este metodo, necesitaras "HP USB Key Utility for Windows", de http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&cc=us&mode=3&taskId=135&swItem=MTX-UNITY-I23839

  1. Instala "HP USB Key Utility for Windows"
  2. Pincha el lapiz USB y deja que Windows lo encuentre (mira la letra que le ha asignado p.ej. F:)
  3. Ejecuta Inicio -> Programs -> HP System Tools -> HP Drive Key Boot Utility
    1. En la pantalla de bienvenida haz click en Next/Siguiente
    2. Selecciona la letra de tu lapiz USB (en mi caso la F:) y haz click en Next/Siguiente
    3. Selecciona Create New or Replace Existing Configuration y haz click en Next/Siguiente
    4. Selecciona Hard Drive (disco duro) y haz click en Next/Siguiente
    5. Selecciona Create New Filesystem (crear nuevo sistema de archivos) y haz click en Next/Siguiente
    6. Espera a que se formatee la unidad ...
    7. Selecciona HP Firmware Flash Package, haz click en Next/Siguiente y despues en Finish/Finalizar.
  4. Ahora extrae el contenido del archivo dsl-embedded.zip directamente a tu disco flash (F: en mi caso) sobreescribiendo todos los archivos (!!).
  5. ¡Hecho! Tu DamnSmallLinux en USB esta listo! :-) ¡¡Reinicia y pruebalo!!

Nota: Este metodo no me funciono empleando DSL v3.3 con una unidad USB Sandisk Cruizer Titanium. Tampoco funcionó en una pendrive Sony Micro Vault.

Convertir .iso a instalacion USB

Con la guia de [1] puedes instalar los contenidos de la .iso de un modo no destructivo a la particion USB. Deja fuera todo el rollo del particionamiento y el formateo para preparar una unidad USB existente y usada para el arranque de DSL:

Nota: ¡Todos los nombres de ruta son ejemplos! Por favor, adaptalos o podrias corromper particiones o archivos existentes.

  • Montar unidad USB, con, por ejemplo, mount /dev/sda1 /flash - ¡pueden ser FAT16 o FAT32!
  • Montar imagen ISO, con, por ejemplo, mount /tmp/dsl-3.2.iso /tmp/iso -o loop
  • Copia todos los contenidos de la ISO a la unidad USB: cp -vr /tmp/iso/* /flash/
  • Renombra y mueve los archivos de syslinux al directorio raiz: mv /flash/boot/isolinux/* /flash/
  • Renombra isolinux.cfg: mv /flash/isolinux.cfg /flash/syslinux.cfg
  • Desmonta la unidad USB: umount /flash
  • Instala syslinux: syslinux /dev/sda1 y eventualmente pon el modificador de arranque MBR para esta particion (con fdisk).

Preguntas

  • ¿Por que DSL instalado en disco USB no termina de arrancar despues de la conversion desde la .iso?
    • Parece que el archivo KNOPPIX esta fijado a buscar el CD-ROM y no la unidad USB. Usa la version incrustable (embedded).
  • ¿Por que el metodo desde-Linux requiere FAT16, pero el metodo de Windows funciona con FAT32? ¿Podria dejar y reusar una particion USB FAT32 existente empleando la version Linux syslinux?
    • Ambos metodos deberian funcionar, no obstante, segun notas previas, usando FAT se obtengan probablemente mejores resultados que con FAT32.
    • Syslinux es el motivo clave para el asunto de FAT16 vs. FAT32... CentOS 4.4 (que es esencialmente Red Hat ES4) viene con syslinux 2.1, el cual no soporta FAT32. Syslinux 3.35 (el ultimo, cuando escribo esto) funciona perfectamente con FAT32.
  • ¿Por que mi teclado y raton USB no funcionan cuando he entrado en X windows?
    • Prueba a habilitar la entrada 'USB device emulation legacy' en la configuración de tu BIOS.

Modificaciones para la v3.2 Incrustable (embeded)

Despues de la instalacion añadi autorun.inf penguin.ico /USB /tightvnc

Al intentar ejecutar dsl-linux.sh en mi distro no funciono y tuve que modificar el archivo (estaba configurado para una segunda unidad y qemu no existia en la descarga)

Aqui hay algunas configuraciones que encontre despues de la instalacion. Tambien cree un autorun.inf que funciona sin problemas con esto. El archivo autorun.inf esta tambien configurado para uso con TightVNC si se se crea la carpeta tightvnc en la raiz de la unidad. Tambien cree un enlace de contexto al directorio USB.

  • autorun.inf
   [autorun]
   icon=penguin.ico
   label=Damn Small Linux
   open=dsl-base.bat
   action=Run Damn Small Linux in qemu
   shell\vncviewer\command=tightvnc\vncviewer.exe
   shell\vncviewer=Run the VNC Viewer Application
   shell\tightvnc\command=tightvnc\tightvnc-1.2.9-setup.exe
   shell\tightvnc=Run the TightVNC Server Installation
   shell\usbfolder\command="explorer.exe USB\"
   shell\usbfolder=Open the USB folder in Windows Explorer


Este siguiente archivo lo modifique y empareje al equivalente de Windows para que no tengas que responder a todas las preguntas en cada arranque. Alguna gente podria encontrar el -m 256 exagarado y quiza quiera ajustarlo a sus necesidades.

  • dsl-linux.sh
    qemu/qemu -L qemu/ -no-kqemu -soundhw sb16 -m 256 -localtime \
       -kernel linux24 -initrd minirt24.gz -hda KNOPPIX/KNOPPIX\
       -append "qemu vga=791 quiet noscsi nousb nofirewire atapicd noideraid\
       noacpi acpi=off noapm noagp ide1=noprobe ide2=noprobe nomce frugal"

Tambien tienes que descargar QEmu y copiar estos archivos al directorio qemu de la unidad USB.

  • qemu
  • qemu-img
  • qemu-i386

Si quieres usar el resto del menu de contexto que he creado, descarga el instalador TightVNC, el vncviewer y ponlor en un \tightvnc.

En este punto oculte todos los archivos de DSL y los directorios TightVNC, USB. Es un nivel de seguridad muy bajo, pero funciona bien. Para emplear cualquier cosa simplemente haz click con el boton derecho del raton en My Computer.