Debian-live-persistante : connexion au Net de n'importe où ?

Install selon ce tuto :
http://www.vleeuwen.net/2014/01/create-a-persistent-debian-live-usb-flash-drive
Tout va bien, connexion facile en direct (à froid) sur 3 machines différentes, SAUF pour Internet qui n’est opérationnel qu’à partir de la machine qui a servi à l’install de la clef (ptet pas de rapport ?).
if config sur la machine qui va bien : il prend l’IP de ladite machine.

[code]eth0 Link encap:Ethernet HWaddr xxxxxxxxxxxxxxx
inet adr:192.168.0.4 Bcast:192.168.0.255 Masque:255.255.255.0
adr inet6: xxxxxxxxxxxxxxxxxxxxx Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5370 errors:0 dropped:0 overruns:0 frame:0
TX packets:4717 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:4178750 (3.9 MiB) TX bytes:674191 (658.3 KiB)

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:159 errors:0 dropped:0 overruns:0 frame:0
TX packets:159 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:14770 (14.4 KiB) TX bytes:14770 (14.4 KiB)

[/code]
Sur les autres, seule la partie ‘lo’ est présente.
Aucune indication exploitable dans les logs.

Je n’ai pas voulu mettre la partie du tuto sur l’IP fixe car le jeu n’est pas de se servir de cette clef à la maison mais de n’importe où.

[code]If you want to use a static ip (like me), line 6 should be like:

append boot=live persistence noeject config quiet splash ip=eth0:192.168.1.7:255.255.255.0:192.168.1.1:217.149.196.6[/code]

Une idée ?

Il suffit d’interdire à [mono]udev[/mono] d’attribuer pour règles eth0, eth1, eth2 en [mono]/mnt/persistence/etc/udev/rules.d/70-persistent-net.rules[/mono] avec [mono]chattr[/mono].

D’où mon retour sur l’autre fil.

# lsattr etc/udev/rules.d/70-persistent-net.rules ----i--------e-- etc/udev/rules.d/70-persistent-net.rules

[code]# mount /dev/sdb1 /mnt/live/

mount /dev/sdb2 /mnt/persistence/[/code]

Avant de procéder, un nettoyage s’impose, quel est son contenu ?

# cat /mnt/persistence/etc/udev/rules.d/70-persistent-net.rules 

?

[quote=“ricardo”]Sur les autres, seule la partie ‘lo’ est présente.
Aucune indication exploitable dans les logs.[/quote]

Même pas un retour [mono]$ ping x.x.x.x[/mono] :033

Je ne vois pas pourquoi tu me parles de /mnt puisqu’il est vide, évidemment.
Comprends une chose :
Je démarre machine éteinte avec clef connectée.
J’allume la machine et je me trouve sur une “debian stable” opérationnelle, je ne monte rien.
De ce fait, si je passe tes commandes, aucune ne fonctionne, bien sûr;

EDIT :
Je vais te copier le 70-persistent-net.rules dans quelques minutes.

edit :

[code]# This file was automatically generated by the /lib/udev/write_net_rules

program, run by the persistent-net-generator.rules rules file.

You can modify it, as long as you keep each rule on a single

line, and change only the value of the NAME= key.

PCI device 0x14e4:/sys/devices/pci0000:00/0000:00:1c.5/0000:08:00.0 (tg3)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“xxxxxxxxxxxx”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth0”

PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:15.0/0000:05:00.0 (r8169)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“xxxxxxxxxx”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth1”

PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:1c.0/0000:01:00.0 (r8169)

SUBSYSTEM==“net”, ACTION==“add”, DRIVERS=="?", ATTR{address}==“xxxxxxxxxxxxx”, ATTR{dev_id}==“0x0”, ATTR{type}==“1”, KERNEL=="eth", NAME=“eth2”
[/code]

La piste d’udev qui renomme l’interface à cause du nommage persistant par adresse MAC est bonne, mais je suis obligé de signaler que la méthode de changer les attributs du fichier avec chattr est pourrie, aussi efficace soit-elle. C’est de la sale bidouille.

Ricardo, comment ton système configure-t-il le réseau ? Via /etc/network/interfaces, NetworkManager, autre ?

Finalement, c’est là qu’on voit l’avantage de NetworkManager sur ifupdown : peu importe le nom de l’interface, par défaut dès qu’elle est connectée elle est configurée en DHCP. J’ai changé deux fois un disque dur de machine, l’interface s’appelle maintenant eth3 mais peu importe, le réseau fonctionne sans que j’aie rien eu à modifier.

Si en revanche eth0 est définie dans /etc/network/interfaces, même si on empêche udev de renommer les interfaces il reste le cas des machines avec plusieurs interfaces ethX (par exemple un contrôleur ethernet et un contrôleur wifi Intel dont le pilote nomme aussi l’interface ethX et non wlanX). Si eth0 n’est pas la bonne interface connectée, pas de réseau.

Un [mono]chattr[/mono] ne peut pas être lancer sur une live clé monter.

Voilà pourquoi : [mono]mount …[/mono] depuis ta machine.

[quote]Si en revanche eth0 est définie dans /etc/network/interfaces, même si on empêche udev de renommer les interfaces il reste le cas des machines avec plusieurs interfaces ethX (par exemple un contrôleur ethernet et un contrôleur wifi Intel dont le pilote nomme aussi l’interface ethX et non wlanX). Si eth0 n’est pas la bonne interface connectée, pas de réseau.

[/quote]
Voilà exactement ce que je me dis
Alors sur cette clef, interfaces est au strict minimum

auto lo iface lo inet loopback

Je n’en sais strictement rien, j’ai installe WICD pour voir mais il est muet, bien entendu
À tous hasards,je te copie un ifconfig de mon ordibureau où je suis actuellement :

[code]eth0 Link encap:Ethernet HWaddr xxxxxxxxxxxxxxxxx
inet adr:192.168.0.5 Bcast:192.168.0.255 Masque:255.255.255.0
adr inet6: xxxxxxxxxxxxxxxxxxxxxx Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5370 errors:0 dropped:0 overruns:0 frame:0
TX packets:4717 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:4178750 (3.9 MiB) TX bytes:674191 (658.3 KiB)

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:159 errors:0 dropped:0 overruns:0 frame:0
TX packets:159 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:14770 (14.4 KiB) TX bytes:14770 (14.4 KiB)
[/code]

Hélas ifconfig ne nous dira pas ce qui a configuré eth0. Si ce n’est ni ifupdown, ni NetworkManager ni Wicd, je ne vois pas…

Depuis la live clé-usb.

[18:36:39] / # dpkg -l | grep network ii avahi-autoipd 0.6.31-2 i386 Avahi IPv4LL network address configuration daemon ii glib-networking:i386 2.32.3-1 i386 network-related giomodules for GLib ii glib-networking-common 2.32.3-1 all network-related giomodules for GLib - data files ii glib-networking-services 2.32.3-1 i386 network-related giomodules for GLib - D-Bus services ii ifupdown 0.7.8 i386 high level tools to configure network interfaces ii iproute 20120521-3+b3 i386 networking and traffic control tools ii iputils-ping 3:20101006-1+b1 i386 Tools to test the reachability of network hosts ii libqt4-network:i386 4:4.8.2+dfsg-11 i386 Qt 4 network module ii libsocket-perl 2.002-1 i386 networking constants and support functions ii net-tools 1.60-24.2 i386 The NET-3 networking toolkit ii netbase 5.0 all Basic TCP/IP networking system ii traceroute 1:2.0.18-3 i386 Traces the route taken by packets over an IPv4/IPv6 network [18:36:43] / #

Cependant je pencherai sur l’un de ces scripts lors du montage du fichier [mono]/lib/live/mount/rootfs/filesystem.squashfs[/mono]

[code][19:35:47] ~ # ls /lib/live/mount/rootfs/filesystem.squashfs
bin boot dev etc home initrd.img initrd.img.old lib media mnt opt proc root run sbin selinux srv sys tmp usr var vmlinuz vmlinuz.old
[19:35:51] ~ #

[/code]

[18:37:07] / # ll lib/live/boot total 87K -rwxr-xr-x 1 root root 103 2013-02-14 19:34 0010-dracut -rwxr-xr-x 1 root root 173 2013-02-14 19:34 0020-initramfs-tools -rwxr-xr-x 1 root root 267 2013-02-14 19:34 0110-debug -rwxr-xr-x 1 root root 1,1K 2013-02-14 19:34 0120-read-only -rwxr-xr-x 1 root root 1,8K 2013-02-14 19:34 3010-verify-checksums -rwxr-xr-x 1 root root 1,3K 2013-02-14 19:34 3020-swapon -rwxr-xr-x 1 root root 1003 2013-02-14 19:34 9990-aaa-fixme.sh -rwxr-xr-x 1 root root 5,5K 2013-02-14 19:34 9990-cmdline-old -rwxr-xr-x 1 root root 612 2013-02-14 19:34 9990-fstab.sh -rwxr-xr-x 1 root root 1,7K 2013-02-14 19:34 9990-initramfs-tools.sh -rwxr-xr-x 1 root root 4,8K 2013-02-14 19:34 9990-main.sh -rwxr-xr-x 1 root root 35K 2013-02-14 19:34 9990-misc-helpers.sh -rwxr-xr-x 1 root root 383 2013-02-14 19:34 9990-mount-cifs.sh -rwxr-xr-x 1 root root 2,1K 2013-02-14 19:34 9990-mount-http.sh -rwxr-xr-x 1 root root 1,5K 2013-02-14 19:34 9990-mount-iscsi.sh -rwxr-xr-x 1 root root 435 2013-02-14 19:34 9990-mount-nfs.sh -rwxr-xr-x 1 root root 3,1K 2013-02-14 19:34 9990-netbase.sh -rwxr-xr-x 1 root root 560 2013-02-14 19:34 9990-netboot.sh -rwxr-xr-x 1 root root 4,5K 2013-02-14 19:34 9990-networking.sh -rwxr-xr-x 1 root root 11K 2013-02-14 19:34 9990-overlay.sh -rwxr-xr-x 1 root root 2,1K 2013-02-14 19:34 9990-select-eth-device.sh -rwxr-xr-x 1 root root 2,7K 2013-02-14 19:34 9990-toram-todisk.sh -rw-r--r-- 1 root root 743 2013-02-14 19:34 FIXME [18:37:13] / #

[code][18:45:27] ~ # cat /lib/live/boot/9990-networking.sh
#!/bin/sh

#set -e

do_netsetup ()
{
modprobe -q af_packet # For DHCP

    udevadm trigger
    udevadm settle

    [ -n "$ETHDEV_TIMEOUT" ] || ETHDEV_TIMEOUT=15
    echo "Using timeout of $ETHDEV_TIMEOUT seconds for network configuration."

    if [ -z "${NETBOOT}" ] && [ -z "${FETCH}" ] && [ -z "${HTTPFS}" ] && [ -z "${FTPFS}" ]
    then
            # support for Syslinux IPAPPEND parameter
            # it sets the BOOTIF variable on the kernel parameter

            if [ -n "${BOOTIF}" ]
            then
                    # pxelinux sets BOOTIF to a value based on the mac address of the
                    # network card used to PXE boot, so use this value for DEVICE rather
                    # than a hard-coded device name from initramfs.conf. this facilitates
                    # network booting when machines may have multiple network cards.
                    # pxelinux sets BOOTIF to 01-$mac_address

                    # strip off the leading "01-", which isn't part of the mac
                    # address
                    temp_mac=${BOOTIF#*-}

                    # convert to typical mac address format by replacing "-" with ":"
                    bootif_mac=""
                    IFS='-'
                    for x in $temp_mac
                    do
                            if [ -z "$bootif_mac" ]
                            then
                                    bootif_mac="$x"
                            else
                                    bootif_mac="$bootif_mac:$x"
                            fi
                    done
                    unset IFS

                    # look for devices with matching mac address, and set DEVICE to
                    # appropriate value if match is found.

                    for device in /sys/class/net/*
                    do
                            if [ -f "$device/address" ]
                            then
                                    current_mac=$(cat "$device/address")

                                    if [ "$bootif_mac" = "$current_mac" ]
                                    then
                                            DEVICE=${device##*/}
                                            break
                                    fi
                            fi
                    done
            fi

            # if ethdevice was not specified on the kernel command line
            # make sure we try to get a working network configuration
            # for *every* present network device (except for loopback of course)
            if [ -z "$ETHDEVICE" ]
            then
                    echo "If you want to boot from a specific device use bootoption ethdevice=..."
                    for device in /sys/class/net/*
                    do
                            dev=${device##*/}
                            if [ "$dev" != "lo" ]
                            then
                                    ETHDEVICE="$ETHDEVICE $dev"
                            fi
                    done
            fi

            # split args of ethdevice=eth0,eth1 into "eth0 eth1"
            for device in $(echo $ETHDEVICE | sed 's/,/ /g')
            do
                    devlist="$devlist $device"
            done

            # this is tricky (and ugly) because ipconfig sometimes just hangs/runs into
            # an endless loop; if execution fails give it two further tries, that's
            # why we use '$devlist $devlist $devlist' for the other for loop
            for dev in $devlist $devlist $devlist
            do
                    echo "Executing ipconfig -t $ETHDEV_TIMEOUT $dev"
                    ipconfig -t "$ETHDEV_TIMEOUT" $dev | tee -a /netboot.config &
                    jobid=$!
                    sleep "$ETHDEV_TIMEOUT" ; sleep 1
                    if [ -r /proc/"$jobid"/status ]
                    then
                            echo "Killing job $jobid for device $dev as ipconfig ran into recursion..."
                            kill -9 $jobid
                    fi

                    # if configuration of device worked we should have an assigned
                    # IP address, if so let's use the device as $DEVICE for later usage.
                    # simple and primitive approach which seems to work fine
                    if ifconfig $dev | grep -q 'inet.*addr:'
                    then
                            export DEVICE="$dev"
                            break
                    fi
            done
    else
            for interface in ${DEVICE}; do
                    ipconfig -t "$ETHDEV_TIMEOUT" ${interface} | tee /netboot-${interface}.config

                    # squeeze
                    [ -e /tmp/net-${interface}.conf ] && . /tmp/net-${interface}.conf

                    # wheezy
                    [ -e /run/net-${interface}.conf ] && . /run/net-${interface}.conf

                    if [ "$IPV4ADDR" != "0.0.0.0" ]
                    then
                            break
                    fi
            done
    fi

    for interface in ${DEVICE}
    do
            # source relevant ipconfig output
            OLDHOSTNAME=${HOSTNAME}

            # squeeze
            [ -e /tmp/net-${interface}.conf ] && . /tmp/net-${interface}.conf

            # wheezy
            [ -e /run/net-${interface}.conf ] && . /run/net-${interface}.conf

            [ -z ${HOSTNAME} ] && HOSTNAME=${OLDHOSTNAME}
            export HOSTNAME

            if [ -n "${interface}" ]
            then
                    HWADDR="$(cat /sys/class/net/${interface}/address)"
            fi

            if [ ! -e "/etc/resolv.conf" ]
            then
                    echo "Creating /etc/resolv.conf"

                    if [ -n "${DNSDOMAIN}" ]
                    then
                            echo "domain ${DNSDOMAIN}" > /etc/resolv.conf
                            echo "search ${DNSDOMAIN}" >> /etc/resolv.conf
                    fi

                    for i in ${IPV4DNS0} ${IPV4DNS1} ${IPV4DNS1}
                    do
                            if [ -n "$i" ] && [ "$i" != 0.0.0.0 ]
                            then
                                    echo "nameserver $i" >> /etc/resolv.conf
                            fi
                    done
            fi

            # Check if we have a network device at all
            if ! ls /sys/class/net/"$interface" > /dev/null 2>&1 && \
               ! ls /sys/class/net/eth0 > /dev/null 2>&1 && \
               ! ls /sys/class/net/wlan0 > /dev/null 2>&1 && \
               ! ls /sys/class/net/ath0 > /dev/null 2>&1 && \
               ! ls /sys/class/net/ra0 > /dev/null 2>&1
            then
                    panic "No supported network device found, maybe a non-mainline driver is required."
            fi
    done

}
[18:45:33] ~ #
[/code]

[code][18:46:12] ~ # cat /lib/live/boot/9990-select-eth-device.sh
#!/bin/sh

Select_eth_device ()
{
# Boot type in initramfs’s config
bootconf=$(egrep ‘^BOOT=’ /conf/initramfs.conf | tail -1)

    # can be superseded by command line (used by Debian-Live's netboot for example)
    for ARGUMENT in ${_CMDLINE}
    do
            case "${ARGUMENT}" in
                    netboot=*)
                            NETBOOT="${ARGUMENT#netboot=}"
                            ;;
            esac
    done

    if [ "$bootconf" != "BOOT=nfs" ] && [ -z "$NETBOOT" ] && [ -z "$FETCH" ] && [ -z "$FTPFS" ] && [ -z "$HTTPFS" ]
    then
            # Not a net boot : nothing to do
            return
    fi

    # we want to do some basic IP
    modprobe -q af_packet

    # Available Ethernet interfaces ?
    l_interfaces=""
    echo "Waiting for ethernet card(s) up... If this fails, maybe the ethernet card is not supported by the kernel `uname -r`?"
    while [ -z "$l_interfaces" ]
    do
            l_interfaces="$(cd /sys/class/net/ && ls -d eth* 2>/dev/null)"
    done

    if [ $(echo $l_interfaces | wc -w) -lt 2 ]
    then
            # only one interface : no choice
            echo "DEVICE=$l_interfaces" >> /conf/param.conf
            return
    fi

    # If user force to use specific device, write it
    for ARGUMENT in ${_CMDLINE}
    do
            case "${ARGUMENT}" in
                    live-netdev=*)
                            NETDEV="${ARGUMENT#live-netdev=}"
                            echo "DEVICE=$NETDEV" >> /conf/param.conf
                            echo "Found live-netdev parameter, forcing to to use network device $NETDEV."
                            return
                            ;;
            esac
    done

    found_eth_dev=""
    while true
    do
            echo -n "Looking for a connected Ethernet interface ..."

            for interface in $l_interfaces
            do
                    # ATTR{carrier} is not set if this is not done
                    echo -n " $interface ?"
                    ipconfig -c none -d $interface -t 1 >/dev/null 2>&1
            done

            echo ''

            for step in 1 2 3 4 5
            do
                    for interface in $l_interfaces
                    do
                            carrier=$(cat /sys/class/net/$interface/carrier \
                                    2>/dev/null)
                            # link detected

                            case "${carrier}" in
                                    1)
                                            echo "Connected $interface found"
                                            # inform initrd's init script :
                                            found_eth_dev="$found_eth_dev $interface"
                                            ;;
                            esac
                    done
                    if [ -n "$found_eth_dev" ]
                    then
                            echo "DEVICE='$found_eth_dev'" >> /conf/param.conf
                            return
                    else
                            # wait a bit
                            sleep 1
                    fi
            done
    done

}
[18:46:30] ~ #
[/code]

[19:17:15] ~ # cat /var/log/dmesg.0 | grep 'Kernel command line:' Kernel command line: boot=live persistence noeject config quiet splash lang=fr_FR ip=eth0:192.168.1.25:255.255.255.0:192.168.1.1:8.8.8.8 initrd=/live/initrd1.img BOOT_IMAGE=/live/vmlinuz1 [19:17:35] ~ # [19:18:08] ~ # find / -iname "*initrd1.img*" /lib/live/mount/medium/live/initrd1.img [19:18:22] ~ # [19:18:27] ~ # ll /lib/live/mount/medium/live/initrd1.img -rwxr-xr-x 1 root root 12M 2014-07-27 08:04 /lib/live/mount/medium/live/initrd1.img [19:18:30] ~ #

[19:33:06] ~ # find / -iname "*vmlinuz1*" /lib/live/mount/medium/live/vmlinuz1 [19:33:13] ~ # [19:33:18] ~ # ll /lib/live/mount/medium/live/vmlinuz1 -rwxr-xr-x 1 root root 2,4M 2014-07-27 08:04 /lib/live/mount/medium/live/vmlinuz1 [19:33:21] ~ #

Il semblerait que tu sois en 386 ? moi, c’est amd-64 mais je laisse Pascal déduire s’il y a quelque chose à déduire de ton descriptif.

Salut,

Pour cette live-usb.

Seul le fichier [mono]/lib/live/mount/rootfs/filesystem.squashfs[/mono] contient la racine système chargé en mémoire lors de la phase de boot.

Alors à moins de retoucher (avant) les scripts de boot situés en [mono]/lib/live/boot/…[/mono], system de fichier monté en lecture seule, je ne vois pas trop comment interagir.

[07:30:17] ~ # mount [...] /dev/sdb1 on /lib/live/mount/medium type vfat (ro,noatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=utf8,shortname=mixed,errors=remount-ro) /dev/loop0 on /lib/live/mount/rootfs/filesystem.squashfs type squashfs (ro,noatime) [...] /dev/sdb2 on /lib/live/mount/persistence/sdb2 type ext4 (rw,noatime,user_xattr,barrier=1,data=ordered)

À titre d’exemple, hein.

[07:29:17] ~ # ll /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces -rw-r--r-- 1 root root 82 2014-07-23 18:44 /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces [07:29:23] ~ # [07:29:23] ~ # lsattr /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces lsattr: Ioctl() inappropré pour un périphérique Lors de la lecture des drapeaux sur /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces [07:29:27] ~ # [07:29:28] ~ # chmod 400 /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces chmod: modification des permissions de « /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces »: Système de fichiers accessible en lecture seulement [07:29:32] ~ # [07:29:32] ~ # chown user: /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces chown: changement de propriétaire pour « /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces »: Système de fichiers accessible en lecture seulement [07:29:51] ~ # [07:30:00] ~ # ll /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces -rw-r--r-- 1 root root 82 2014-07-23 18:44 /lib/live/mount/rootfs/filesystem.squashfs/etc/network/interfaces [07:30:02] ~ #

Je veux pas avoir l’air d’insister mais bilibop-udev résout ce problème. Je crois même qu’il est dans tails.

Je pense avoir résolu le problème, un Bug#724605 résiduel.

Nécessitant :

  • un démontage préalable de l’iso
  • chrooter l’ensemble
  • porter la modif en [mono]9990-networking.sh[/mono] ligne : 57
  • installer console-data
  • reconfigurer console-data
  • reconfigurer les locales
  • porter les modif sur le [mono]filesystem.packages[/mono]
  • reconstruire le fichier initrd
  • reconstruire le filesystem.squashfs
  • reconstruire l’iso

Dans les grandes lignes, quoi … :033

Il me reste à booter sur une deuxième machine pour confirmer.

N’attends pas après moi, je n’y connais strictement rien en système live.

Boot, sur une deuxième machine, échec réseau.

J’ai dû merder quelque part entre le démontage et la reconstruction de l’iso.

Mais, où … :017

Vais reprendre de zéro.

OK à tous mais ne vous prenez pas la tête si ce n’est que pour moi.

Si tu peux m’en dire plus !
quoi installer que faire avec ?
Moi, si je n’ai pas de détails, je pédale dans la semoule :unamused:

Je n’irais pas jusque là, simplement, pour l’ensemble des membres du forum, présents et futurs … :sunglasses:

Ricardo, j’ai réussi ! :dance:

Je viens de tester la dite clé sur quatre machines dont deux portables, le réseau fonctionne, sans bidouille du genre [mono]chattr[/mono].

Cela dit, dans la bagarre j’ai juste oublié la [mono]persistence[/mono] et le label [mono]live[/mono].

Je te file la procédure si tu veux, le temps pour moi de corriger mon oubli.

Re,

Une chose, il te faut installer [mono]squashfs-tools[/mono] sur ta machine.

N’ayant pas (plus) suffisamment d’espace sur ma racine, je bosse sur un dd externe.

Tu devrais refaire ta live-USB, (en moins de dix minutes c’est fait) cela évitera probablement bien des soucis, AMHA.

Pour la suite, comptes environ 35 minutes.

[15:47:29] ~ # mount -t ext4 /dev/sdc6 /mnt/ [15:47:52] ~ # [15:47:53] ~ # cd /mnt [15:47:57] /mnt #

[15:48:01] /mnt # mkdir prepa_iso && cd prepa_iso [15:48:15] /mnt/prepa_iso # [15:48:15] /mnt/prepa_iso # mkdir iso squashfs [15:48:28] /mnt/prepa_iso # [15:48:29] /mnt/prepa_iso # ll total 8,0K drwx------ 2 root root 4,0K 2014-07-30 15:48 iso drwx------ 2 root root 4,0K 2014-07-30 15:48 squashfs [15:48:31] /mnt/prepa_iso #
Je n’ai pas utilisé de CD et travaille directement avec l’iso.

[15:48:31] /mnt/prepa_iso # mount -o loop /home/loreleil/telecharge/debian-live-7.6.0-i386-standard.iso /media mount: block device /home/loreleil/telecharge/debian-live-7.6.0-i386-standard.iso is write-protected, mounting read-only [15:48:41] /mnt/prepa_iso #

[15:48:42] /mnt/prepa_iso # cp -a /media/. iso/ [15:49:14] /mnt/prepa_iso # [15:49:18] /mnt/prepa_iso # umount /media [15:49:26] /mnt/prepa_iso #

[15:49:27] /mnt/prepa_iso # mount -t squashfs -o loop iso/live/filesystem.squashfs /media/ mount: warning: /media/ seems to be mounted read-only. [15:49:43] /mnt/prepa_iso #

[15:50:51] /mnt/prepa_iso # cp -a /media/. squashfs/ [15:54:11] /mnt/prepa_iso #

[15:55:45] /mnt/prepa_iso # mount --bind /proc/ squashfs/proc/ [15:55:47] /mnt/prepa_iso # mount --bind /sys/ squashfs/sys/ [15:55:59] /mnt/prepa_iso # mount --bind /dev squashfs/dev/ [15:56:09] /mnt/prepa_iso #

[15:56:15] /mnt/prepa_iso # chroot squashfs root@pc-2-loreleil:/# root@pc-2-loreleil:/# ls bin boot dev etc home initrd.img initrd.img.old lib media mnt opt proc root run sbin selinux srv sys tmp usr var vmlinuz vmlinuz.old root@pc-2-loreleil:/#

root@pc-2-loreleil:/# cd lib/live/boot root@pc-2-loreleil:/lib/live/boot# root@pc-2-loreleil:/lib/live/boot# ls 0010-dracut 0120-read-only 9990-aaa-fixme.sh 9990-initramfs-tools.sh 9990-mount-cifs.sh 9990-mount-nfs.sh 9990-networking.sh 9990-toram-todisk.sh 0020-initramfs-tools 3010-verify-checksums 9990-cmdline-old 9990-main.sh 9990-mount-http.sh 9990-netbase.sh 9990-overlay.sh FIXME 0110-debug 3020-swapon 9990-fstab.sh 9990-misc-helpers.sh 9990-mount-iscsi.sh 9990-netboot.sh 9990-select-eth-device.sh root@pc-2-loreleil:/lib/live/boot#

En ligne 57 remplaces [mono]DEVICE=${device##/}[/mono] par [mono]ETHDEVICE=${device##/}[/mono]

[mono]root@pc-2-loreleil:/lib/live/boot# nano 9990-networking.sh
root@pc-2-loreleil:/lib/live/boot#[/mono]

root@pc-2-loreleil:/lib/live/boot# cd root@pc-2-loreleil:~# root@pc-2-loreleil:~# umount /sys root@pc-2-loreleil:~# umount /proc root@pc-2-loreleil:~# umount /dev root@pc-2-loreleil:~#

root@pc-2-loreleil:~# exit exit [16:00:03] /mnt/prepa_iso #

[16:00:04] /mnt/prepa_iso # ls iso squashfs [16:00:37] /mnt/prepa_iso #

[16:00:38] /mnt/prepa_iso # [16:00:59] /mnt/prepa_iso # rm iso/live/filesystem.squashfs rm : supprimer fichier « iso/live/filesystem.squashfs » ? y [16:01:04] /mnt/prepa_iso #

[16:01:12] /mnt/prepa_iso # cd squashfs [16:01:14] /mnt/prepa_iso/squashfs #

[code][16:01:31] /mnt/prepa_iso/squashfs # mksquashfs . …/iso/live/filesystem.squashfs -info
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on …/iso/live/filesystem.squashfs, block size 131072.
mksquashfs: file ./bin/bash, uncompressed size 941252 bytes
mksquashfs: file ./bin/bunzip2, uncompressed size 30268 bytes
mksquashfs: file ./bin/busybox, uncompressed size 683040 bytes
mksquashfs: file ./bin/bzcat, uncompressed size 30268 bytes LINK

[…]

    staff (50)
    libuuid (101)
    Debian-exim (103)
    nogroup (65534)

[16:14:51] /mnt/prepa_iso/squashfs #
[16:14:58] /mnt/prepa_iso/squashfs # [/code]

[16:16:00] /mnt/prepa_iso/squashfs # cd .. [16:16:25] /mnt/prepa_iso # [16:16:25] /mnt/prepa_iso # cd iso/

[16:16:37] /mnt/prepa_iso/iso # ll live total 450M -rw------- 1 root root 423M 2014-07-30 16:14 filesystem.squashfs -r--r--r-- 1 root root 173K 2014-07-23 18:59 memtest -r--r--r-- 1 root root 154 2014-07-23 18:59 filesystem.packages-remove -r--r--r-- 1 root root 12M 2014-07-23 18:59 initrd1.img -r--r--r-- 1 root root 12M 2014-07-23 18:59 initrd2.img -r--r--r-- 1 root root 2,4M 2014-07-23 18:59 vmlinuz1 -r--r--r-- 1 root root 2,6M 2014-07-23 18:59 vmlinuz2 -r--r--r-- 1 root root 15K 2014-07-23 18:59 filesystem.packages [16:16:46] /mnt/prepa_iso/iso #

[16:17:36] ~ # umount /media [16:17:48] ~ # umount /dev/sdc6

[16:18:14] ~ # mount -t ext4 /dev/sdc6 /media/

À présent remontes ta clé et supprimes le fichier [mono]filesystem.squashfs[/mono].

[16:19:20] ~ # mount /dev/sdb1 /mnt/live/ [16:19:41] ~ # mount /dev/sdb2 /mnt/persistence/

[16:21:31] ~ # cd /mnt/live/live/ [16:21:37] /mnt/live/live # [16:21:37] /mnt/live/live # [16:21:50] /mnt/live/live # rm filesystem.squashfs rm : supprimer fichier « filesystem.squashfs » ? y [16:21:56] /mnt/live/live #
Maintenant le [mono]filesystem.squashfs[/mono] recréer ci-dessus, il te restes à le copier sur ta live-USB.

[16:22:47] ~ # cp /media/prepa_iso/iso/live/filesystem.squashfs /mnt/live/live/ [16:24:49] ~ #

[16:24:52] ~ # ll /mnt/live/live total 450M -rwxr-xr-x 1 root root 423M 2014-07-30 16:24 filesystem.squashfs -rwxr-xr-x 1 root root 173K 2014-07-23 18:59 memtest -rwxr-xr-x 1 root root 154 2014-07-23 18:59 filesystem.packages-remove -rwxr-xr-x 1 root root 12M 2014-07-23 18:59 initrd1.img -rwxr-xr-x 1 root root 12M 2014-07-23 18:59 initrd2.img -rwxr-xr-x 1 root root 2,4M 2014-07-23 18:59 vmlinuz1 -rwxr-xr-x 1 root root 2,6M 2014-07-23 18:59 vmlinuz2 -rwxr-xr-x 1 root root 15K 2014-07-23 18:59 filesystem.packages [16:24:57] ~ #

[16:25:19] ~ # umount /mnt/live [16:25:21] ~ # umount /mnt/persistence

C’est terminé ! 8)

Ben dis-donc, quel boulot tu as fait :023
Je ne te dis pas que je vais le faire tout de suite mais si mon expérience suivante est concluante, je tenterai l’affaire.
J’ai retrouvé ce matin une clef avec PartedMagic dessus.
Je l’ai essayée sur mon portable et elle est totalement opérationnelle.
Malheureusement, comme un imbécile, j’ai voulu y tester ce qui ressemble à une persistance, avant de la monter sur une autre machine.
Résultat : elle de boute pas sur les autres ordis.
C’est pour ça que je veux en refaire une autre, à partir de l’ordibureau, d’où mon autre fil pour graver l’iso sur une clef :unamused: