Aller au contenu

faktor1

Membres
  • Compteur de contenus

    11
  • Inscription

  • Dernière visite

  • Jours gagnés

    1

faktor1 a gagné pour la dernière fois le 5 juin 2013

faktor1 a eu le contenu le plus aimé !

À propos de faktor1

Visiteurs récents du profil

1098 visualisations du profil

faktor1's Achievements

Newbie

Newbie (1/14)

2

Réputation sur la communauté

  1. En fait, la commande "chroot", sans plus de paramètre va exécuter le contenu de ta variable $SHELL DiskStation> echo $SHELL /bin/ash Or, ash n'est pas disponible sous Debian. tu peux spécifier le shell que tu veux lancer sous Debian à la commande chroot: chroot /volume1/@debian /bin/bash Si tu préfères, si tu as lancé le script init_debian que j'ai fourni, tu peux utiliser le script "debian" qui a été créé dans /usr/local/bin. debian sans paramètre exécute bash debian avec le nom d'une commande en paramètre lance cette commande sous debian
  2. Bonjour tripkip, Debootstrap a besoin de Perl. Le plus simple, c'est d'installer le package Perl de Synology. Quand debootstrap aura installé Debian dans /volume1/@debian, il faut lancer init_debian pour tout paramétrer. Puis, start_debian pour monter les file-systems (/dev, /proc, ...) Puis debian pour entrer dedans. N'hésites pas à me faire signe si tu as d'autres questions.
  3. Salut Flashoux, C'est expliqué dans mon post : regarde les lignes en rouge
  4. Bonjour Flashoux, La commande "ar" est fournie par ipkg. Elle est dans /volume1/@optware/bin. N'hésites pas à me faire signe si tu as besoin de plus d'information.
  5. Salut, Non, tu reste avec un seul OS (un seul et même kernel en mémoire). Par contre, tu te retrouves avec deux arborescences distinctes au niveau de l'exécution des commandes. i.e. /bin du DSM et /bin du Debian en chroot sont deux répertoires distincts. La mise à jour de l'un n'impacte pas l'autre
  6. Bonjour CoolRaoul, Gdb et git m'ont servis avant que la version 4.0.4 de Samba ne soit sortie. Ils ne sont pas effectivement plus utilisés. Je les retire du post 1.
  7. Bonjour CoolRaoul, Le premier avantage, c'est que ma procédure permet de choisir la version de Debian qui sera installée. Le second avantage, c'est qu'elle permet de maîtriser ce qui est fait, plutôt que de simplement installer un SPK. Ma procédure n'est pas le seule qui existe. Il y en a plein d'autres et même de meilleures que la mienne, et j'ai simplement voulu la partager
  8. Bonjour, Pour ceux que ça intéresse, voici la procédure que j'ai utilisée pour transformer mon DS413 (DSM 4.2) en contrôleur de domaine Active Directory 2008 R2 à l'aide de Samba 4.0.4. pré-requis : avoir une Debian complète et fonctionnelle sur le DS413 (c.f. ?do=embed' frameborder='0' data-embedContent> ) se chrooter sur Debian 1 - télécharger et installer les packages nécessaires à la compilation de Samba Attention, le processeur du DS413 (Freescale P1022) le supporte pas l'instruction LWSYNC, ce qui provoque le plantage des programmes qui l'implémentent. Pour contourner ce problème, le plus simple est d'utiliser mon script "remove_lwsync" (c.f. ?do=embed' frameborder='0' data-embedContent> ) pour remplacer l'instruction LWSYNC par l'instruction SYNC. apt-get -y install build-essential vim telnet remove_lwsync apt-get -y install libblkid-dev libgnutls-dev libreadline-dev libpopt-dev libldap2-dev libkrb5-dev libssl-dev libncurses5-dev libpam0g-dev libctdb-dev libcups2-dev libaio-dev libcxxtools-dev heimdal-multidev libpcre3 libxml2 libffi5 libtalloc2 libtevent0 remove_lwsync dpkg --configure dbus /etc/init.d/dbus stop apt-get -y install python-dnspython python-dev python-talloc apt-get -y install shared-mime-info remove_lwsync dpkg --configure shared-mime-info apt-get -y install pkg-config xsltproc apt-get -y install dnsutils apt-get -y install tdb-tools libtdb-dev apt-get -y -t experimental install ldb-tools libldb-dev python-ldb apt-get -y install libacl1-dev libattr1-dev acl apt-get -y install krb5-user krb5-config sur l'écran bleu "Configuring Kerberos Authentication", répondre aux questions Default Kerberos version 5 realm ==> le FQDN de votre domaine Default servers for your realm ==> le nom de votre Syno Administrative server for your Kerberos realm ==> le nom de votre Syno 2 - télécharger et compiler samba 4.0.4 cd /root wget http://ftp.samba.org/pub/samba/samba-4.0.4.tar.gz tar xf samba-4.0.4.tar.gz cd samba-4.0.4 ./configure.developer --without-acl-support make make install ldconfig -v 3 - configurer le domaine (le tout sur une seule ligne bien sûr) /usr/local/samba/bin/samba-tool domain provision --realm=xxx ==> le FQDN de votre domaine --domain=xxx ==> le nom Netbios de votre domaine --adminpass=xxx ==> le mot de passe du compte Administrator --host-ip=xxxx ==> l'adresse IP de votre Debian (DOIT être différente de l'adresse IP du Syno) --host-name=xxx ==> le nom que vous voulez bonner à votre contrôleur du domaine --server-role=dc --function-level=2008_R2 --use-ntvfs --use-rfc2307 4 - Mettre à jour le fichier /usr/local/samba/etc/smb.conf Il devrait être configuré correctement avec les paramètres spécifiés dans la commande samba-tool. Ajouter juste la ligne suivante dans la section [global] dns forwarder = xxx ==> l'adresse IP de votre serveur DNS habituel (8.8.8.8 pour le serveur DNS Google) 5 - Configurer Kerberos (créer le fichier /etc/krb5.conf) remplacer "xxx" (minuscules) par le FQDN de votre domaine remplacer "XXX" (majuscules) par le FQDN de votre domaine (en majuscules) remplacer "yyy" par le FQDN de votre contrôleur de domaine (c'est à dire le FQDN de votre Debian) [libdefaults] default_realm = XXX dns_lookup_realm = false dns_lookup_kdc = true [realms] XXX= { kdc = yyy:88 admin_server = yyy:749 default_domain = xxx } [domain_realm] .xxx = XXX xxx = XXX 6 - utilisez votre nouveau contrôleur de domaine comme serveur DNS, pour cela, éditez le fichier /etc/resolv.conf nameserver xxx ==> adresse IP de votre Debian domain yyy ==> FQDN de votre domaine 7 - créer le script de démarrage /etc/init.debian/S02Samba, sans oublier le petit chroot 700 qui va bien (ce script sera lancé par /usr/local/etc/debian.sh lors de chaque reboot de votre Syno si vous avez suivi mon précédent post) #! /bin/sh ROOT=/usr/local/samba/sbin start() { echo -n $"Starting $prog: " $ROOT/samba -M single sleep 2 if ps ax | grep -v "grep" | grep -q $ROOT/samba ; then echo OK ; else echo FAILED ; fi } stop() { echo -n $"Shutting down $prog: " killall samba sleep 2 if ps ax | grep -v "grep" | grep -q $ROOT/samba ; then echo FAILED ; else echo OK ; fi } status() { if ps ax | grep -v "grep" | grep -q $ROOT/samba ; then echo Running ; else echo Not running ; fi } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status ;; restart|reload) stop sleep 1 start ;; *) echo $"Usage: $0 {start|stop|restart|status}" exit 1 esac exit 0 8 - démarrer Samba /etc/init.debian/S02Samba start 9 - déclarer votre contrôleur de domaine dans le DNS remplacer "xxx" par l'adresse IP de votre Debian remplacer "yyy" par le FQDN de votre domaine remplacer "zzz" par le nom de votre contrôleur de domaine /usr/local/samba/bin/samba-tool dns add xxx yyy zzz A xxx -U Administrator@yyy voilà, j'espère que ce tuto vous aura été utile ...
  9. Bonjour, Pour ceux que ça intéresse, voici la procédure que j'ai utilisé pour avoir une Debian complète et fonctionnelle sur mon DS413 (DSM 4.2). Il faut pour ça, bien entendu, être connecté en telnet ou en ssh sous le compte root. 1 - télécharger et installer les pré-requis (tr et md5sum) cd /tmp wget http://ftp.fr.debian.org/debian/pool/main/c/coreutils/coreutils_8.5-1_powerpc.deb ar x coreutils_8.5-1_powerpc.deb data.tar.gz tar xvf data.tar.gz -C / ./usr/bin/tr ./usr/bin/md5sum rm coreutils_8.5-1_powerpc.deb data.tar.gz 2 - télécharger et installer la dernière version de debootstrap cd /tmp mv /usr/share/debootstrap /usr/share/debootstrap.org wget http://ftp.fr.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.26+squeeze1_all.deb ar x debootstrap_1.0.26+squeeze1_all.deb data.tar.gz tar xvf data.tar.gz -C / rm debootstrap_1.0.26+squeeze1_all.deb data.tar.gz (cd / ; tar cf - dev) | gzip -9 > /usr/share/debootstrap/devices.tar.gz 3 - Créer l'arborescence Debian (j'ai choisi dans mon cas la release wheezy) debootstrap --arch powerpc wheezy /volume1/@debian rm -rf /volume1/@debian/dev/* 4 - monter les file-system système du Syno sur Debian mount -o bind /dev /volume1/@debian/dev mount -o bind /dev/pts /volume1/@debian/dev/pts mount -o bind /sys /volume1/@debian/sys mount -o bind /proc /volume1/@debian/proc 5 - faire un chroot, et profiter de la Debian chroot /volume1/@debian Attention, le processeur du DS413 (Freescale P1022) le supporte pas l'instruction LWSYNC, ce qui provoque le plantage des programmes qui l'implémentent. Pour contourner ce problème, le plus simple est de remplacer l'instruction LWSYNC par SYNC qui est, ellle, supportée. Pour avoir un système complètement opérationnel, j'ai créé le script init_debian qui se charge du paramétrage de la Debian, y compris lors de chaque reboot du Syno: #! /bin/sh LOCAL_DIR=$(dirname $0) ERR_NOCNF=1 ERR_NOVAR=2 [ ! -f $LOCAL_DIR/debian.conf ] && { echo "ERROR: $LOCAL_DIR/debian.conf not found." >&2 ; exit $ERR_NOCNF ; } . $LOCAL_DIR/debian.conf for var in DIRECTORY INTERFACE IP GATEWAY NETMASK do eval '[ "$DEBIAN_'$var'" == "" ] && { echo "ERROR: DEBIAN_$var variable not found in debian.conf" >&2 ; exit $ERR_NOVAR ; }' done echo echo "Creating management scripts" echo " /usr/local/bin/debian" cat <<-END | cut -d| -f2- > /usr/local/bin/debian |#! /bin/sh | |LOCAL_DIR=$(dirname $0) |ERR_NOCNF=1 |ERR_NOVAR=2 | |[ ! -f $LOCAL_DIR/debian.conf ] && { echo "ERROR: $LOCAL_DIR/debian.conf not found." >&2 ; exit $ERR_NOCNF ; } |. $LOCAL_DIR/debian.conf |[ "$DEBIAN_DIRECTORY" == "" ] && { echo "ERROR: DEBIAN_DIRECTORY variable not found in debian.conf" >&2 ; exit $ERR_NOVAR ; } | |[ $# -eq 0 ] && set - bash | |chroot $DEBIAN_DIRECTORY $@ END echo " /usr/local/bin/start_debian" cat <<-END | cut -d| -f2- > /usr/local/bin/start_debian |#! /bin/sh | |LOCAL_DIR=$(dirname $0) |ERR_NOCNF=1 |ERR_NOVAR=2 | |[ ! -f $LOCAL_DIR/debian.conf ] && { echo "ERROR: $LOCAL_DIR/debian.conf not found." >&2 ; exit $ERR_NOCNF ; } |. $LOCAL_DIR/debian.conf |[ "$DEBIAN_DIRECTORY" == "" ] && { echo "ERROR: DEBIAN_DIRECTORY variable not found in debian.conf" >&2 ; exit $ERR_NOVAR ; } | |echo "mounting filesystems :" |for fs in dev dev/pts proc sys |do | mounted=$(mount | grep -i " $DEBIAN_DIRECTORY/$fs ") | if [ "$mounted" = "" ] | then | echo " mounting /$fs to $DEBIAN_DIRECTORY/$fs" | mount -o bind /$fs $DEBIAN_DIRECTORY/$fs | else | echo " $DEBIAN_DIRECTORY/$fs already mounted" | fi |done | |echo |echo "Starting Services" |for svc in $(ls $DEBIAN_DIRECTORY/etc/init.debian/* 2>&-) |do | service=$(basename $svc xxx) | echo -n " " | chroot $DEBIAN_DIRECTORY /etc/init.debian/$service start |done END echo " /usr/local/bin/stop_debian" cat <<-END | cut -d| -f2- > /usr/local/bin/stop_debian |#! /bin/sh | |LOCAL_DIR=$(dirname $0) |ERR_NOCNF=1 |ERR_NOVAR=2 | |[ ! -f $LOCAL_DIR/debian.conf ] && { echo "ERROR: $LOCAL_DIR/debian.conf not found." >&2 ; exit $ERR_NOCNF ; } |. $LOCAL_DIR/debian.conf |[ "$DEBIAN_DIRECTORY" == "" ] && { echo "ERROR: DEBIAN_DIRECTORY variable not found in debian.conf" >&2 ; exit $ERR_NOVAR ; } | |echo "Stopping Services" |for svc in $(ls -r $DEBIAN_DIRECTORY/etc/init.debian/* 2>&-) |do | service=$(basename $svc xxx) | echo -n " " | chroot $DEBIAN_DIRECTORY /etc/init.debian/$service stop |done | |echo |echo "Unmounting filesystemps" |for fs in dev/pts dev proc sys |do | mounted=$(mount | grep -i " $DEBIAN_DIRECTORY/$fs ") | if [ "$mounted" = "" ] | then | echo " $DEBIAN_DIRECTORY/$fs not mounted" | else | echo " umounting $DEBIAN_DIRECTORY/$fs" | umount -l $DEBIAN_DIRECTORY/$fs | fi |done END echo " /usr/local/etc/rc.d/debian.sh" cat <<-END | cut -d| -f2- > /usr/local/etc/rc.d/debian.sh |#!/bin/sh | |case "$1" in | start) /usr/local/bin/start_debian ;; | stop) /usr/local/bin/stop_debian ;; | restart) $0 stop ; sleep 1 ; $0 start ;; | *) echo "usage: $0 { start | stop | restart }" >&2 | exit 1 | ;; |esac END echo echo "Creating Debian System files" echo " /root/.bashrc" cat <<-END | cut -d| -f2- > $DEBIAN_DIRECTORY/root/.bashrc |. /etc/profile | |if tput colors >&- |then | export PS1='$(tput bold)$(tput setab 1)$(tput setaf 7)DEBIAN (w)#$(tput sgr0) ' |else | export PS1='DEBIAN (w)# ' |fi | |export LS_OPTIONS='--color=auto' |eval "$(dircolors)" |alias ls='ls $LS_OPTIONS' |alias ll='ls $LS_OPTIONS -l' |alias l='ls $LS_OPTIONS -lA' END echo " /etc/init.debian/S01Networking" [ ! -d $DEBIAN_DIRECTORY/etc/init.debian ] && mkdir $DEBIAN_DIRECTORY/etc/init.debian cat <<-END | cut -d| -f2- > $DEBIAN_DIRECTORY/etc/init.debian/S01Networking |#! /bin/bash | |echo "----- $(date) : $@" >>/var/log/S01etworking.log | |case $1 in | start) echo -n "Starting eth0:0 : " | tee -a /var/log/S01etworking.log | ifdown --force eth0:0 2>&1 >>/var/log/S01etworking.log | ifup eth0:0 2>&1 >>/var/log/S01etworking.log | if [ "$(ifconfig eth0:0 2>&- | grep UP)" == "" ] | then | echo "FAILED, please check /var/log/S01etworking.log" | tee -a /var/log/S01etworking.log | exit 1 | else | echo "OK" | tee -a /var/log/S01etworking.log | exit 0 | fi | ;; | | stop) echo -n "Stopping eth0:0 : " | tee -a /var/log/S01etworking.log | ifdown --force eth0:0 2>&1 >>/var/log/S01etworking.log | if [ "$(ifconfig eth0:0 2>&- | grep UP)" == "" ] | then | echo "FAILED, please check /var/log/S01etworking.log" | tee -a /var/log/S01etworking.log | exit 1 | else | echo "OK" | tee -a /var/log/S01etworking.log | exit 0 | fi | ;; | | restart)$0 stop | $0 start | ;; | | status) ifconfig eth0:0 | ;; | | *) echo "Syntax: $0 start|stop|restart|status" | exit 2 | ;; |esac END chmod 700 $DEBIAN_DIRECTORY/etc/init.debian/S01Networking echo " /etc/resolv.conf" cp -p /etc/resolv.conf $DEBIAN_DIRECTORY/etc/resolv.conf echo " /etc/hosts" echo "127.0.0.1 localhost" > $DEBIAN_DIRECTORY/etc/hosts echo " /etc/apt/sources.list" cat <<-END | cut -d| -f2- > $DEBIAN_DIRECTORY/etc/apt/sources.list |deb http://ftp.debian.org/debian testing main contrib |deb-src http://ftp.debian.org/debian testing main contrib | |deb http://ftp.debian.org/debian/ wheezy-updates main contrib |deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib | |deb http://security.debian.org/ wheezy/updates main contrib |deb-src http://security.debian.org/ wheezy/updates main contrib | |deb http://ftp.fr.debian.org/debian/ experimental main contrib non-free |deb-src http://ftp.fr.debian.org/debian/ experimental main contrib non-free END echo " /etc/mtab" fs=$(df $DEBIAN_DIRECTORY | grep -v 1K-blocks | cut -d -f1) fstyp=$(grep "^$fs " /etc/mtab | cut -d -f3) echo $fs / $fstyp > $DEBIAN_DIRECTORY/etc/mtab echo " /etc/fstab" echo $fs / $fstyp 0 0 > $DEBIAN_DIRECTORY/etc/fstab echo " /etc/network/interfaces" cat <<-END | cut -d| -f2- > $DEBIAN_DIRECTORY/etc/network/interfaces |auto $DEBIAN_INTERFACE |iface $DEBIAN_INTERFACE inet static | address $DEBIAN_IP | netmask $DEBIAN_NETMASK | gateway $DEBIAN_GATEWAY END echo " /usr/local/bin/remove_lwsync" cat <<-END | cut -d| -f2- > $DEBIAN_DIRECTORY/usr/local/bin/remove_lwsync |#! /bin/sh | |echo "Removing LWSYNC opcode" |if [ $# -eq 0 ] |then | dirs="/bin /lib /usr/bin /usr/lib /usr/local /sbin" |else | dirs=$@ |fi | |for dir in $dirs |do | echo " $dir" | find $dir -type f -exec /usr/local/bin/remove_lwsync_from_file {} ; |done END chmod 700 $DEBIAN_DIRECTORY/usr/local/bin/remove_lwsync echo " /usr/local/bin/remove_lwsync_from_file" cat <<-END | cut -d| -f2- > $DEBIAN_DIRECTORY/usr/local/bin/remove_lwsync_from_file #! /bin/sh | |temp=$(tempfile) |sed "s/x7cx20x04xac/x7cx00x04xac/g" $1 > $temp |if [ "$(diff -q $1 $temp 2>&1)" != "" ] |then | dd if=$temp of=$1 >&- 2>&- | echo " updated : $1" |fi |rm -f $temp END chmod 700 $DEBIAN_DIRECTORY/usr/local/bin/remove_lwsync_from_file echo debian /usr/local/bin/remove_lwsync echo start_debian echo echo "updating the aptitude cache" debian apt-get -y update >&- echo echo "Done" Pour s'exécuter, il a besoin d'un fichier de paramétrage présent dans le même dossier que lui et appelé debian.conf et contenant les variables suivantes: DEBIAN_DIRECTORY le nom du repertoire contenant Debian DEBIAN_INTERFACE nom de l'interface réseau à créer DEBIAN_IP adresse IP de l'interface Debian DEBIAN_NETMASK masque réseau de l'interface Debian DEBIAN_GATEWAY adresse IP de la gateway de l'interface Debian à titre d'exemple: DEBIAN_DIRECTORY=/volume1/@debian DEBIAN_INTERFACE=eth0:0 DEBIAN_IP=192.168.0.200 DEBIAN_NETMASK=255.255.255.0 DEBIAN_GATEWAY=192.168.0.1 Trace d'exécution du script: Creating management scripts /usr/local/bin/debian /usr/local/bin/start_debian /usr/local/bin/stop_debian /usr/local/etc/rc.d/debian.sh Creating Debian System files /root/.bashrc /etc/init.debian/S01Networking /etc/resolv.conf /etc/hosts /etc/apt/sources.list /etc/mtab /etc/fstab /etc/network/interfaces /usr/local/bin/remove_lwsync /usr/local/bin/remove_lwsync_from_file Removing LWSYNC opcode /bin /lib /usr/bin updated : /usr/bin/apt-cdrom updated : /usr/bin/apt-config updated : /usr/bin/apt-mark updated : /usr/bin/apt-get updated : /usr/bin/apt-extracttemplates updated : /usr/bin'/apt-sortpkgs updated : /usr/bin/apt-ftparchive updated : /usr/bin/aptitude-curses /usr/lib updated : /usr/lib/powerpc-linux-gnu/libapt-inst.so.1.5.0 updated : /usr/lib/powerpc-linux-gnu/libapt-pkg.so.4.12.0 updated : /usr/lib/powerpc-linux-gnu/libstdc++.so.6.0.17 updated : /usr/lib/apt/solvers/apt updated : /usr/lib/apt/methods/gzip updated : /usr/lib/apt/methods/http updated : /usr/lib/apt/methods/cdrom updated : /usr/lib/apt/methods/copy updated : /usr/lib/apt/methods/ftp updated : /usr/lib/apt/methods/mirror updated : /usr/lib/apt/methods/gpgv updated : /usr/lib/apt/methods/rred updated : /usr/lib/apt/methods/file updated : /usr/lib/apt/methods/rsh updated : /usr/lib/libboost_iostreams.so.1.49.0 updated : /usr/lib/libcwidget.so.3.0.0 updated : /usr/lib/libept.so.1.aptpkg4.12 updated : /usr/lib/rsyslog/imuxsock.so updated : /usr/lib/libxapian.so.22.5.0 /usr/local /sbin mounting filesystems : mounting /dev to /volume1/@debian/dev mounting /dev/pts to /volume1/@debian/dev/pts mounting /proc to /volume1/@debian/proc mounting /sys to /volume1/@debian/sys Starting Services S01NetworkingStarting eth0:0 : OK updating the aptitude cache Done Une fois exécuté, les fichiers suivants ont été créés: Sur le Dyno /usr/local/bin/start_debian permet de monter les file-system du Dyno sur Debian et de lancer les services Debian /usr/local/bin/start_debian permet de stopper les services Debian et demonter les file-system du Dyno sur Debian /usr/local/bin/debian permet de lancer une commande Debian depuis le syno avec chroot /usr/local/etc/rc.d/debian.sh permet de faire un start_debian à chaque reboot du Syno Sur Debian /usr/local/bin/remove_lwsync_from_file permet de supprimer l'instruction LWSYNC dans un fichier /usr/local/bin/remove_lwsync permet de supprimer l'instruction LWSYNC dans une arborescence Pour qu'un service se lance sur Debian, il suffit de créer (ou linker) un script de démarrage dans le répertoire /etc/init.debian. Voilà, j'espère que ça vous sera utile :-)
  10. Bonjour, J'aimerais booter mon DS413 sur une clef USB de manière à ce que mes disques ne soient pas redémarrés à chaque fois qu'un fichier de la partition système est accédé. L'objectif serait donc de ne garder que /volume1 sur les disques. Malheureusement, le DS413 n'a pas de prise VGA et je n'ai donc pas accès au bios. L'un de vous aurait-il une idée ? Merci d'avance
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.