Configurez un stockage USB

De Wiki LOGre
Aller à : navigation, rechercher


Configurer un stockage USB

La les routeurs TP-LINK n'ont q'un espace de quelques méga-octets en flash (4Mo). Il est donc fort difficile d'installer autre chose que le système de base.

Detecter une clef USB sur la PirateBox

  • Prérequis : les packages suivants doivent être installés (avec la commande opkg install):
    • kmod-usb-storage
    • kmod-usb-storage-extras
    • kmod-fs-ext4 (pour une clef formatée en ext3 ou ext4)
    • block-mount
  • Si vous voulez monter un clef fat32 il faut ajouter ces paquets :
    • kmod-fs-vfat
    • kmod-nls-cp437
    • kmod-nls-iso8859-1
  • Verifier que la pirateBox detecte la clef USB : tapez dmesg et chercher un truc du genre
 [   10.780000] usb 1-1: new high-speed USB device number 2 using ehci-platform 
 [   10.920000] uhci_hcd: USB Universal Host Controller Interface driver
 [   11.110000] Initializing USB Mass Storage driver...
 [   11.120000] usbcore: registered new interface driver usb-storage
 [   11.120000] USB Mass Storage support registered.
 [   11.140000] scsi0 : usb-storage 1-1:1.0
 [   12.560000] scsi 0:0:0:0: Direct-Access     General  USB Flash Disk   1100 PQ: 0 ANSI: 0 CCS
 [   12.600000] sd 0:0:0:0: [sda] 7876224 512-byte logical blocks: (4.03 GB/3.75 GiB)
 [   12.620000] sd 0:0:0:0: [sda] Write Protect is off
 [   12.620000] sd 0:0:0:0: [sda] Mode Sense: 43 00 00 00
 [   12.640000] sd 0:0:0:0: [sda] No Caching mode page present
 [   12.640000] sd 0:0:0:0: [sda] Assuming drive cache: write through
 [   12.780000] sd 0:0:0:0: [sda] No Caching mode page present
 [   12.780000] sd 0:0:0:0: [sda] Assuming drive cache: write through
 [   12.800000]  sda: sda1
 [   12.800000] sd 0:0:0:0: [sda] No Caching mode page present
 [   12.810000] sd 0:0:0:0: [sda] Assuming drive cache: write through
 [   12.810000] sd 0:0:0:0: [sda] Attached SCSI removable disk
  • Montez la clef USB:
 mkdir -p /mnt/usb
  • Pour ext4
 mount -t ext4 /dev/sda1 /mnt/usb -o rw,sync
  • Pour fat32
 mount -t vfat /dev/sda1 /mnt/usb
  • Testez:
 cd /mnt/usb
 touch deleteme

Overlay : quesako ?

L'idée est de monter un espace de stockage en 'overlay' : Imaginez que votre système (flash) de base soit un desin, ajoutez par dessus un calque (overlay) d'une plus grande taille. Vous avez votre système accessible, mais si vous voulez y ajouter des programmes, pas de souci, ils s'installeront sur le calque, tout est ainsi ... transparent !

Dans le cas de notre routeur ?

De base l'overlay est le root lui même, donc pas très utile.

  • Modifier le fichier /etc/config/fstab : on y ajoute

 config 'mount'
       option target   /overlay
       option device   /dev/sda1
       option fstype   ext4
       option options  rw,sync
       option enabled  1
       option enabled_fsck 0

Du coup, au prochain redémarrage, notre overlay pointe vers /dev/sda1 (notre device USB, chemin à adapter en fonction des cas). Un "df" devrait vous donner un "/" et un "/overlay" de la même taille, celle de votre clé USB :

 Filesystem           1K-blocks      Used Available Use% Mounted on
 rootfs                 1962212     65100   1798716   3% /
 /dev/root                 1536      1536         0 100% /rom
 tmpfs                    14600        72     14528   0% /tmp
 tmpfs                      512         0       512   0% /dev
 /dev/sda1              1962212     65100   1798716   3% /overlay
 overlayfs:/overlay     1962212     65100   1798716   3% /

Un problème ?

Overlay disabled

Il se peut, site à un sysupgrade que l'overlay refuse de se monter sur le stockage usb. Pour vérifier:

 df

si s'affiche un truc du genre:

 /dev/sda1              1962212     65100   1798716   3% /tmp/overlay-disabled

Pas de panique ! Il suffit de reinitilaiser le checksum du extroot:

 cp /.extroot.md5sum /tmp/overlay-disabled/etc/extroot.md5sum
 reboot

Overlay mounted in RAM

Il se peut, encore, que votre overlay soit monté en RAM, en gros vosu avez beau modifier un fichier de conf (genre /etc/config/fstab) et au reboot, rien de changé ! C'est simple, le firmware que vous avez flashé est trop gros ! En gros si la taille de l'image sysupgrade est > 3.4 MB, ca risque de planter...

pour vérifier, après avoir flashé le firmware :

 root@OpenWrt:~# df -h
 Filesystem                Size      Used Available Use% Mounted on
 rootfs                   14.4M    112.0K     14.3M   1% /
 /dev/root                 2.8M      2.8M         0 100% /rom
 tmpfs                    14.4M    148.0K     14.2M   1% /tmp
 tmpfs                   512.0K         0    512.0K   0% /dev
 root                     14.4M    112.0K     14.3M   1% /tmp/root
 overlayfs:/tmp/root      14.4M    112.0K     14.3M   1% /

L'overlay est monté en /tmp/root -> tmpfs ! En RAM !