PDA

Voir la version complète : FreeNas 7.2 : ajout de packages à la version embedded



XXwamXX
20/01/2011, 04h56
But du jeu

Une grande force de la version 7 de FreeNas est la possibilité de l'installer sur une média de type flash, bootable. Cependant, le nombre d'écriture sur ce type des média est limité. La FAQ de freeNAS parle même une durée de vie inférieure à 6 mois pour une installation complète du système (avec swap) sur une clé USB.

Heureusement, FreeNAS a prévu le coup, en proposant une version "embedded" de son système. Il n'agit d'une installation pour clé usb, travaillant uniquement en mémoire. Ainsi, plus d'écriture sur la clé usb (hormis les fichiers de configurations). Toute modification autre que de configuration est donc perdue lors d'un reboot. Le revers de la médaille, c'est qu'il est alors impossible d'installer des packages supplémentaire de façon pérenne.

Je propose donc ce thread pour discuter de la meilleure façon de recréer une version embedded de FreeNas v7. Pour ce faire, je vais découper ce premier post en 5 parties, que je modifierai au fur et à mesure de l'avancement de mes pérégrinations, de vos précieux conseils, des nouvelles sources d'aides trouvées sur le net. Ces 5 parties auront l'usage suivant :
- Post 1 (celui-ci !) : objet du thread
- Post 2 : ressources web identifiées
- Post 3 : packages utiles (voir indispensables) à un NAS
- Post 4 : description et avancement de l'installation par mes soins
- Post 5 : pas la moindre idée, mais j'suis sûr que ça servira ! EDIT : Et bien j'ai trouvé : le mode d'emploi, quand il sera opérationnel !

En procédant de la sorte, j'espère ne pas être accusé de vouloir up le thread sans raison (edition des 5 premiers posts, et non nouveaux posts toutes les 5 minutes), ni être accusé de flood.

Bien sûr, si d'autres veulent se lancer dans l'aventure, n'hésitez pas à vous "réserver" quelques posts (si les modos ne nous en veulent pas trop de légèrement contourner les règles).

Je compte sur vous pour toute idée ou aide ! Le fil des linuxiens BG (http://forum.canardpc.com/showthread.php?p=3920891) m'a déjà enlevé plusieurs épines des pieds, merci à eux... mais je vais en avoir plein d'autres !

Ressources web

Ressource principale : http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=23&t=2071&sid=71c70b9b1dc3f5b33a19e55cc94611b5

Autres ressources :
- http://www.freebsd.org/doc/fr/books/handbook/disks-virtual.html
- http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=15&t=1120
- http://www.productionmonkeys.net/guides/freenas/building-freenas

Packages et amélioration nécessaires, voir indispensables, à un NAS

-VLC/FreePlayer
-keyboard français (même si ce n'est pas indispensable : cnx en ssh...)
-wget

Avancement Estimation : les 99% sont dépassés (ne nous enflammons pas... build ok, mais image de quelques MO, pas de kernel !!)

En partant de la ressource web principale (http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=23&t=2071&sid=71c70b9b1dc3f5b33a19e55cc94611b5), réalisée par un power user, je suis en train d'essayer de reconstruire l'image embedded de freeNAS. La démarche qui y est décrite est la suivante :
-Step 1: Provide a suitable source of FreeBSD
-Step 2: Make the new source ready for chroot
-Step 3: Use sysinstall to create a development system
-Step 4: Add some more packages
-Step 5: Avoid compiling X11
-Step 6: Download ports collection
-Step 7: Get FreeNAS sources
-Step 8: Build FreeNAS

Malheureusement, un débutant se casse rapidement les dents sur sa description : raccourcis évidents pour un power user mais pas pour un noob, syntaxe des commandes étrange... et thread non suivi depuis longtemps. Je me propose donc d'amender le howto pour : corriger les erreurs de commandes, normaliser la syntaxe, ajouter des commentaires.

Elements de syntaxe
[Le truc spécifique] => remplacer "le truc spécifique" et les crochets qui l'encadre par la valeur correspondant à vos paramètres/configurations. Doit avoir été explicité précédemment.
Problème/Question en suspend => point en attente de clarification, voir point bloquant. Toute aide est la bien venue !
Point en suspens => ce sur quoi je bosse !

Step 1 : ok
- Téléchargement et dépot du liveCD freeBSD 7.2 à un endroit accessible => disons [freeBSD.iso]
Où le trouver : http://www.freebsd.org/where.html
Où je l'ai déposé : sur une clé USB de 4Go, sur une partition (la 2eme) de 2 Go.

- Boot avec freenas embedded standard 0.7.2
Où le trouver : http://freenas.org/downloads
-> Gravure de l'ISO
-> Boot sur le cd
-> Installation en mode embedded sur clé usb (pour moi, sur la 1ere partition de la clé usb de 4Go)
-> Boot sur la clé usb

mdconfig -f [freeBSD.iso] => retourne l'id, disons [md2]
mkdir /mnt/iso
mount -t cd9660 /dev/[md2] /mnt/iso
mkdir /mnt/fs
mkdir /mnt/fs/iso
cd /mnt/fs/iso => Aller dans un repertoire ou y a de la place. /mnt/fs/iso sera trop petit. Moi j'ai utilisé un montage d'un fs sur clé usb... => soit /mnt/usb4goData/fs/iso

If you're concerned with filling your disk during a tar, or with filling a disk cache, you can also tar to a pipe, which doesn't write the compressed file to disk, but instead just stores it temporarily in memory.
tar -cf - ./filename | (cd other-directory; tar -xf -)

tar cf - -C /mnt/iso . | tar xf - # This Step takes some time => 700Mo a peu pret une fois décompressé !

umount /mnt/iso
mdconfig -d -u [md2]

Step 2 : ok
cp -p /etc/resolv.conf /mnt/usb4goData/fs/iso/etc
mount -t devfs devfs /mnt/fs/iso/dev => Qui peut m'expliquer cette commande ???

Step 3 : ok
chroot /mnt/usb4goData/fs/iso

mkdir /mnt/usb4goData => ok
mount /dev/da1s2 /mnt/usb4goData => KO

sysinstall

* Choose custom installation in the main menu => ok
* choose Options to set your FreeBSD version, and distribution source => impossible de monter usb4goData
=> Release Name 7.2-RELEASE
=> Media Type FTP : ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/
=> Configuration de la carte réseau sans souci (dhcp ?, gateway, ip, mask...)
Plantage du ftp1 (si, si)
utilisation de ftp://ftp3.freebsd.org/pub/FreeBSD/releases/i386/

ouf, ça a l'aire de reprendre la ou ca en était... à la vitesse max de ma cnx toute pourrie.
et plantage en "out of space". 2 Go ça suffit pas ! rm -rd fs, et on recommence sur un hdd de 4Go :'(

* choose Distributions and select Development
* choose Commit

Refuse the download of the ports collection and do not enter the final customization step. => on m'a pas demandé confirmation pour ports (download direct)...

Step 4 & 5 : ok

pkg_add -r bash
pkg_add -r perl
pkg_add -r cdrtools

Apparition du message :
================================================== =========================

Note: The location of the cdrtools `defaults' files has been set to

/usr/local/etc

This is the FreeBSD ports standard config file location, NOT the cdrtools
standard location, which is /etc/default.

The reason for this is that FreeBSD ports and packages should not use
configuration files outside of /usr/local.

================================================== =========================
Espérons que ça n'a pas de lien avec le coup des ports qui se sont téléchargés tout seuls...

pkg_add -r cvsup-without-gui
pkg_add -r subversion
pkg_add -r ruby

====
Note that some of the standard libraries are provided as separate
ports since they require extra dependencies:

converters/ruby-iconv iconv module

databases/ruby-gdbm: GDBM module

x11-toolkits/ruby-tk: Tcl/Tk modules
japanese/ruby-tk: Tcl/Tk modules for Japanized Tcl/Tk

lang/ruby-mode.el: Emacs lisp modules

Install them as occasion demands.
====

pkg_add -r m4

Some of the ports in FreeNAS can be compiled against X11. However typically X11 does not have its place on a NAS filer. Thus we add the following line to /etc/make.conf

WITHOUT_X=yes

Step 6 : ok

portsnap fetch extract => ???


Looking up portsnap.FreeBSD.org mirrors... 5 mirrors found.
Fetching public key from portsnap2.FreeBSD.org... done.
Fetching snapshot tag from portsnap2.FreeBSD.org... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at Thu Jan 20 00:11:16 UTC 2011:
088282db7d06e60548094b20334ba8d94421b170667fa0100% of 64 MB 105 kBps 00m00s
Extracting snapshot... done.
Verifying snapshot integrity...



Step 7
Now we are ready to get the FreeNAS sources off the subversion repository. The URLs depend on the version of FreeNAS.

* FreeNAS 0.69.*: https://freenas.svn.sourceforge.net/svn ... nches/0.69
* FreeNAS 0.7: https://freenas.svn.sourceforge.net/svn ... anches/0.7

Pour nous, ce sera : https://freenas.svn.sourceforge.net/svnroot/freenas/branches/0.7/

Download the sources using this command:

mkdir /usr/local/freenas
cd /usr/local/freenas
svn co https://freenas.svn.sourceforge.net/svnroot/freenas/branches/0.7 svn


Là, svn n'est pas connu. Un petit find et je le trouve dans /usr/local/bin
Je lance donc :
/usr/local/bin/svn co https://freenas.svn.sourceforge.net/svnroot/freenas/branches/0.7/ svn
et ça répond :
ELF interpreter /libexec/ld-elf.so.1 not found
Abort

Pourtant, /libexec/ld-elf.so.1 existe ! :'(

J'ai trouvé ca : http://freebsd.monkey.org/freebsd-hardware/200706/msg00037.html
Mais surtout ça :http://markmail.org/message/otwkp4d2lpr2ln3g#query:ELF%20interpreter%20%2Flibe xec%2Fld-elf.so.1%20not%20found+page:1+mid:g242qxw3ic6yvq7z +state:results

Mélange entre amd64 et i386... wtf...
Faut tout recommencer... :'(:'(:'(



Ok, check out svn en cours...

Step 8

mkdir /usr/local/freenas/fs

cd svn/build
./make.sh

choix de "11" : 11 - Create 'LiveCD' (ISO) file



/usr/local/freenas/work/mfsroot: 99.4% -- replaced with /usr/local/fre enas/work/mfsroot.gz
ISO: Copying previously generated MFSROOT file to /tmp/freenastmp
ISO: Copying bootloader file(s) to /tmp/freenastmp
cp: /usr/local/freenas/bootloader/kernel/kernel.gz: No such file or directory
cp: /usr/local/freenas/bootloader/cdboot: No such file or directory
cp: /usr/local/freenas/bootloader/loader: No such file or directory
cp: /usr/local/freenas/bootloader/loader.conf: No such file or directory
cp: /usr/local/freenas/bootloader/loader.rc: No such file or directory
cp: /usr/local/freenas/bootloader/loader.4th: No such file or directory
cp: /usr/local/freenas/bootloader/support.4th: No such file or directory
cp: /usr/local/freenas/bootloader/defaults/loader.conf: No such file or director y
cp: /usr/local/freenas/bootloader/device.hints: No such file or directory
cp: /usr/local/freenas/bootloader/screen.4th: No such file or directory
cp: /usr/local/freenas/bootloader/frames.4th: No such file or directory
./make.sh: line 566: cd: /usr/obj/freenas/usr/src/sys/FREENAS-amd64/modules/usr/ src/sys/modules: No such file or directory
ISO: Copying IMG file to /tmp/freenastmp
ISO: Generating the ISO file
mkisofs: Uh oh, I cant find the boot image 'boot/cdboot' inside the target tree.
=> Failed


Presque !!!

Selection de toutes les options des menus, dans l'ordre => Success !!!

Pas la moindre idée
Je dis tout de suite que je suis un noob en unix :o, ou pas ???
Attention, FreeNAS est basé sur FreeBSD, qui n'est pas un linux... c'est un coup à ce fâcher avec des linuxiens purs et durs ! Heureusement que les linuxien BG sont compréhensif, d'ailleurs.

D'autres thread, ici, ont déjà abordé la problématique du NAS maison, mais souvent sous l'oeuil harware. Je pense notamment au thread épique de johnclaude et de la construction de son NAS (même s'il parlait aussi de soft)... Une liste serait la bien venue, non ?

Mélange de i386 et amd64...

Alors, ça vous dit ou je remballe ? Moi, je vais me pieuter, on verra ça à tête reposée...

XXwamXX
20/01/2011, 05h09
Ressources web

XXtsufulXX
20/01/2011, 15h28
Hello,

Je suis intéressé par ce thread, dans le but de mettre en place un NAS en recyclant un vieux PC.:o

heavydrinker
10/02/2011, 21h12
Moi çà m'interresse, je souhaite en fait installer xorg et xfce4 sur mon freenas .

ericde45
17/02/2011, 10h14
bonjour,

je suis moi aussi très interessé.
Actuellement j'utilise une full install de freenas 0.72 sur une clef usb
donc je risque une destruction + ou - rapide de la clef
Mon projet serait de creer ma propre version embedded.
En effet j'utilise freenas + sabnzbd + sick beard
Ceci implique d'installer des packages additionnels

je suis donc parti sur l'idée de recreer le mfsroot (fichier qui se charge en ramdisc au boot) en lui attribuant une + grande taille.
simplement recreer un mfsroot + copier/coller le contenu d'une clef freenas ne fonctionne pas.
visiblement il faut que je fasse un jail ou j'installe un nouveau systeme freebsd + freenas pour le transformer ensuite en mfsroot

je me pose une question toute bête mais est ce que les sources de la dernière version de freenas sont disponibles, car il me semble que le svn ne contient qu'une ancienne version

travailles tu toujours sur ton projet ?

Yo-gourt
20/02/2011, 20h28
Ca m'intéresse aussi car je me demandais si je pouvais ajouter un serveur DNS sur le Freenas.
Je testerai bien ton howto en virtuel.