Dopo vari hackeraggi di fonera e linksys wrt54 non ho resistito alla tentazione e mi sono preso un Dlink DNS-323. E’ una vera figata poichè dentro c’è la solita debian embedded, che a saper metterci le mani da tanta soddisfazione.

La prima cosa da fare è quindi accedere via telent/ssh e dare un’occhiatina dentro! A tale scopo mi istallo un pò di sofware aggiuntivo (telnet, ssh, ntp, etc) per farlo eseguire al boot tramite il fun_plug.

Ottimo, appena entrato mi guardo i vari mount e scopro che i due dischi che ho configurato in RAID1 utilizzano ext2….uhm, beh no, meglio ext3, no? Casomai va via la corrente, sto un pò più tranquillo e il DNS-323 risale più veloce.

Bene, cominciamo con la teoria: per passare da ext2 a ext3 dobbiamo lavorare su partizioni “smontate”, altrimenti sono guai, quindi dobbiamo fare un bootstrap+telnet senza che i dischi nelle baie vengano montati automaticamente. Ci serve del sofware aggiuntivo, ma andiamo per gradi.

Ah, una premessa, la mia configurazione è con due dischi esterni in RAID1, per configurazioni diverse…..fate voi!

  1. Aggiorniamo il firmware alla versione 1.06 del 12/03/2008;
  2. istalliamo il Fonz fun_plug ver. 0.5 per avere telnet, ssh, ntp, mediatomb, etc;
  3. andiamo a cambiare EXT2 in EXT3 in tutti file che si chiamano raidtab2web che si trovano nelle partizioni /dev/sd[ab]4. Per far questo dobbiamo modificare il file raidtab2web che si trova sotto /mnt/HD_a4/.systemfile/raidtab2web (sda4) e /mnt/HD_b4/.systemfile/raidtab2web (sdb4). La modifica consiste nel cambiare la riga filesystem EXT2 con la riga filesystem EXT3;
  4. fare la modifica di cui sopra nel file /etc/raidtab2web;
  5. rendere le modifiche definitive nella flash ram con i comandi: mount -t minix /dev/mtdblock0 /sys/mtd1;cp /etc/raidtab2web /sys/mtd1/.;sync;umount /sys/mtd1 e mount -t minix /dev/mtdblock1/sys/mtd2;cp /etc/raidtab2web /sys/mtd2/.;sync;umount /sys/mtd2;
  6. istalliamo fsck per poter fare il bootstrap senza montare i dischi esterni;
  7. eseguiamo il boot come sopra, quindi, dopo esser entrati in telnet, lanciamo il comando /ffp/fsck/no-bash-reload.sh;
  8. rientriamo in telnet: stavolta non ci sono dischi esterni montati (verificate con il comando mount);
  9. effettuiamo un check sulle partizioni, compresa quella RAID1, se ne avete una. Vi consiglio di rispondere sempre “yes”, in modo da correggere gli eventuali errori, compresa la creazione del “lost+found”. Questi i comandi
    • e2fsck /dev/sda4
    • e2fsck /dev/sdb4
    • mdadm -A /dev/md0 /dev/sd[ab]2
    • e2fsck /dev/md0
  10. passiamo a ext3 sulla partizione RAID1 con il comando tune2fs -j /dev/md0;
  11. fermiamo il raid con il comando mdadm –stop /dev/md0 e finalmente
  12. reboot!

Al riavvio, entrando in telnet il mount dovrebbe dare:

/ # mount
rootfs on / type rootfs (rw)
/dev/root on / type ext2 (rw)
proc on /proc type proc (rw,nodiratime)
/dev/loop0 on /sys/crfs type squashfs (ro)
/dev/md0 on /mnt/HD_a2 type ext3 (rw)
/dev/sda4 on /mnt/HD_a4 type ext2 (rw)
/dev/sdb4 on /mnt/HD_b4 type ext2 (rw)
none on /proc/bus/usb type usbfs (rw)
devpts on /dev/pts type devpts (rw)

che dire? Sto’ DNS-323 mi piace proprio!

P.S: chiaramente non è tutta farina del mio sacco, molte info le ho prese da questo articolo e dai README del Fonz e dell’fsck.