OWFS på DNS-320/325
Här följer en beskrivning för att komma igång med OWFS på D-links nätverkshårddisk (NAS - Network Attached Storage) DNS-320/325 med Debian Squeeze. För att konfigurera OWFS på ett normalt Linux-system, se OWFS HowTo.
Bakgrund
D-link DNS-320 är en billig nätverkshårddisk från D-link med plats för två hårddiskar och en USB-port. Trots att programvaran är specialskriven för att agera just nätverkshårddisk så finns det möjighet att öppna upp enheten och få vad som nästan är ett normalt linux-system. D-link har släppt instruktioner för hur man ska göra för att få en chroot:ad installation av Debian Squeeze. Tyvärr är inte USB-porten tillgänglig i Debian om man följer den instruktionen och rc.d-init-scripten körs dessutom inte som dom ska. Den här beskrivningen visar hur man kan ta sig runt det problemet.
Mål
Att få igång en fungerande Debian Squeeze-installation med ett 1-wire-nät med OWFS på en D-link DNS-320 med 1-wire-USB-adaptern DS9490R.
Hårdvara
- D-link DNS-320 med firmware v2.02 daterat 2011-09-23. Det är troligt att det fungerar utan modifikationer på D-link DNS-325 (ej testat).
- USB-adaptern DS9490R.
Mjukvara
- Linux 2.6.22.18 (förinstallerat).
- fun_plug v0.7. För att öppna upp det förinstallerade operativsystemet.
- Debian Squeeze.
- OWFS-2.8p20. Filerna till OWFS.
Beskrivning
Beskrivningen startar med att nollställa och formattera om hårddiskarna på NAS:en. Se noterna längst ner om du har data på hårddiskarna du inte vill radera.
Steg 1, återställ NAS:en och ge den baslinjeinställningar
- Logga in på din NAS via dess web-interface.
- Välj Management/System Management/System Settings/Defaults/Restore to Factory Defaults Settings.
- Vänta på reboot.
- Logga in med admin/<blank>.
- Välj Management/Account Management/Admin Password och sätt password.
- Välj Management/System Management/Time and Date.
- Sätt tidszon och NTP-server.
- Välj Management/System Management/Device.
- Namnge enheten workgroup/eddie/DNS-320. (NAS:en heter alltså 'eddie' i denna beskrivning.)
- Följande punkter är ej nödvändiga.
- Välj Management/System Management/System Settings.
- Sätt Idle Time till 60 minuter.
- Välj Management/System Management/Power Management.
- Sätt Hibernation=5 minuter, Power Recovery=on och Fan Control=Auto.
- Välj Management/System Management/Notifications och fyll i din mail-info.
- Välj Management/System Management/System Settings.
Steg 2, formattera om hårddiskarna
- Välj Management/Disk Management/Hard Drive Configuration.
- Välj Set RAID Type and Re-Format.
- Bestäm själv RAID-typ. Jag kör med RAID 1 och Disable Auto-rebuild.
- Om du får ett felmeddelande under formatteringen, välj 'Restart' och kör steg 2 en gång till. (Kan hända om du redan har fun_plug installerat.)
Nu är NAS:en färdig.
Steg 3, ladda ner fun_plug
På din PC, kör följande (koden fungerar på ett linux-system, kör du t.ex. Windows får du ev. ladda ner filerna med din web-läsare.)
# Create a dir for downloaded files. mkdir dns320deb cd dns320deb # Download fun_plug v0.7 from uli. wget http://wolf-u.li/u/433 -O fun_plug wget http://inreto.de/dns323/fun-plug/0.7/arm/fun_plug.tgz
Steg 4, skapa/ladda ner Debian Squeeze
Jag kallar filen nedan mysqueeze.tar.gz för att minska risken för sammanblandning med den version som D-link släppt, där filen heter squeeze.tar.gz.
Alt. A, packa din egen fil
Välj det här alternativet om du vill göra allt själv och har en linux-dator.
Installationen av Debian Squeeze görs i två steg, det första på din linux-dator och det andra på din NAS. Först behöver du installera paketet debootstrap
sudo apt-get install debootstrap
Skapa sen en katalog och kör debootstrap (OBS! En versioner av debootstrap har en bugg och hänger sig vid nedladdningen. Det gäller t.ex. versionen i Ubuntu 10.04. Detta är testat i Ubuntu 12.04.)
mkdir ~/squeeze_on_dns320 cd ~/squeeze_on_dns320 sudo debootstrap --include=openssh-server,locales --arch=armel --verbose --foreign squeeze ./mysqueeze sudo tar cf mysqueeze.tar mysqueeze sudo gzip mysqueeze.tar
Du ska nu har en fil mysqueeze.tar.gz innehåller det packade squeeze-systemet.
Alt. B, ladda ner en förpackad fil
Välj det här alternativet om du saknar linux-dator och litar på mig ;)
Ladda ner mysqueeze.tar.gz (88Mb). Filen har md5-summan 48b247ca693e3bf4599f79da25f5d4d3.
Steg 5, kopiera filerna till din NAS och boota om
Anslut \\eddie\Volume_1 som en nätverksenhet via Samba (byt ut eddie mot vad din NAS heter).
Kopiera fun_plug, fun_plug.tgz och mysqueeze.tar.gz till \\eddie\Volume_1.
Boota om din NAS genom att logga in på den via dess web-interface och välja Management/System Management/System Settings/Restart/Restart.
Steg 6, logga in med telnet och packa upp Debian
Om allt gått som det ska så har fun_plug 0.7 installerats efter boot och telnet-porten öppnats.
Logga in med telnet (putty på Windows) till din NAS. Du bör välkomnas av en prompt sh-4.1#. Kör följande kommandon i telnet-fönstret för att packa upp Debian Squeeze:
cd /mnt/HD/HD_a2 tar xzf mysqueeze.tar.gz chroot /mnt/HD/HD_a2/mysqueeze /bin/bash
Du kör nu "inne" i den halvfärdigt uppackade squeeze-installationen. Dags att köra steg 2.
/debootstrap/debootstrap --second-stage I: Installing core packages... ... I: Base system installed successfully.
Nu är Squeeze uppackat. Lite "housekeeping" innan vi är klara.
Byt lösenord för root.
passwd
Skapa locale för att slippa varningsmeddelanden senare. Byt ut en_GB.UTF-8 till din egen.
sed -i 's/^.*en_GB.UTF-8/en_GB.UTF-8/' /etc/locale.gen locale-gen
Nu är uppackningen klar. Lämna squeeze.
exit
Steg 7, skapa Debians start-script och boota upp Debian
Skapa en fil /mnt/HD/HD_a2/fun_plug.mydebian på din NAS med följande innehåll:
#!/bin/sh export DIR=/mnt/HD/HD_a2 export DIST=mysqueeze export CHROOT=$DIR/$DIST # Write a log, in case something goes wrong FFP_LOG=$DIR/ffpdeb.log #FFP_LOG=/dev/null exec >>$FFP_LOG 2>&1 echo echo "Debian mysqueeze fun_plug" date # Create /ffp link FFP_PATH=$DIR/ffp echo "ln -snf $FFP_PATH /ffp" ln -snf $FFP_PATH /ffp # run fun_plug.init, if present if [ -x /ffp/etc/fun_plug.init ]; then echo "Running /ffp/etc/fun_plug.init ..." /ffp/etc/fun_plug.init fi cd $DIR mkdir -p $DIST$DIR mount --bind $DIR $DIST$DIR mkdir -p $CHROOT/mnt/root mount --bind / $CHROOT/mnt/root mount -o bind /dev $CHROOT/dev mount -o bind /proc $CHROOT/proc mount -o bind /proc/bus/usb $CHROOT/proc/bus/usb mount -o bind /sys $CHROOT/sys mount -o bind /dev/pts $CHROOT/dev/pts cp /etc/resolv.conf $CHROOT/etc/resolv.conf cp /etc/hosts $CHROOT/etc/hosts cp -f /proc/mounts $CHROOT/etc/mtab rm -f $CHROOT/etc/fstab touch $CHROOT/etc/fstab cp -f /etc/resolv.conf $CHROOT/etc hostname >$CHROOT/etc/hostname cp -f /etc/hosts $CHROOT/etc #echo "env > /mnt/HD/HD_a2/env" #env > /mnt/HD/HD_a2/env #echo "ls -l > /mnt/HD/HD_a2/ls-l" #ls -l > /mnt/HD/HD_a2/ls-l # run fun_plug.local, if present in current directory if [ -x /mnt/HD/HD_a2/fun_plug.local ]; then echo "Running /mnt/HD/HD_a2/fun_plug.local..." /mnt/HD/HD_a2/fun_plug.local fi echo "$CHROOT/usr/sbin/chroot $CHROOT /etc/init.d/rc 2" $CHROOT/usr/sbin/chroot $CHROOT /etc/init.d/rc 2
Se till att filen är körbar.
chmod +x fun_plug.mydebian
Till sist, flytta original-fun_plug åt sidan och kopiera in mydebian:s fun_plug
mv fun_plug fun_plug.ffp cp fun_plug.mydebian fun_plug
På detta sätt kan man senare tillfälligt boota upp i fun_plug-läge genom att kopiera fun_plug.ffp till fun_plug och boota om. Återställning till debian sker sen genom att kopiera fun_plug.debian till fun_plug och boota om.
Boota om din NAS genom att logga in på den via dess web-interface och välja Management/System Management/System Settings/Restart/Restart.
Steg 8, installera baspaket i Debian Squeeze
Om allt gått som det ska Debian Squeeze nu ha startat på din NAS och telnet-porten ha stängts. I stället ska vi logga in som root med ssh med det lösenord du valde i steg 6.
ssh eddie -l root
Sätt tidszon:
ln -sf /usr/share/zoneinfo/Europe/Stockholm /etc/localtime
Lägg till säkerhetsuppdateringar och installera baspaket.
echo "deb http://ftp.se.debian.org/debian stable main contrib non-free" >> /etc/apt/sources.list echo "deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free" >> /etc/apt/sources.list echo "deb http://security.debian.org/ squeeze/updates main contrib non-free" >> /etc/apt/sources.list apt-get update && apt-get -y upgrade && apt-get -y install python fuse-utils less at sysklogd ed usbutils sudo
Skapa en user owfs som får göra sudo och logga ut.
adduser owfs adduser owfs sudo
Fortsätt
Logga nu ut som root och in som owfs och kör OWFS_HowTo. Glöm inte --enable-debian vid ./configure. Räkna med ett felmeddelande från apache pga att NAS:en redan kör en web-server på port 80. Räkna med att kompileringssteget 'sudo make && sudo make install' tar runt 20 minuter.
Om du inte vill radera allt på dina hårddiskar
- Om du har data och/eller inställningar på din DNS-320 som du inte vill tappa kan du förmodligen skippa steg 1 och 2.
- Har du fun_plug v0.5 kan du kanske starta från steg 4 och bara skippa nedladdning av fun_plug v0.7.
- Har du installerat D-links squeeze så kan du få viss funktion genom att editera deras fun_plug(.debian) och ändra raderna
mount --bind /proc $DISTDIR/proc mount --bind /dev $DISTDIR/dev
till
mount --rbind /proc $DISTDIR/proc mount --rbind /dev $DISTDIR/dev
Denna förändring gör att du kan kompilera och installera owfs, men det automatiska boot-scriptet kommer inte att fungera eftersom deras version inte startar /etc/init.d/rc.