Asustor Virtualbox + Linux Mint : comment activer le Wake-on-LAN ?

MilesTEG

Administreur
Membre du personnel
6 Septembre 2020
3 050
738
213
Bonsoir,
Je cherche à activer le WoL pour ma machine virtuelle Linux Mint 20.3. Mais je n'y arrive pas avec cette commande :
Bash:
Miles@Virtual-Linux-Mint:~$ sudo ethtool -s enp0s3 wol g
Cannot set new wake-on-lan settings: Operation not supported
  not setting wol

enp0s3 est l'interface de la carte réseau.
J'ai ça comme paramètres réseau de la MV :
1671645352375.png

Merci de votre aide.
 
bonjour
tu peux pas démarrer une Vm par signal wol sur sa carte réseau ... c'est juste impossible : le wol est réservé aux cartes physiques qui restent en veille même si l'os est éteint, et qui agissent par l'envoi d'un signal à la carte mère pour réveiller le bousin ....

Qu'est ce que tu cherches à faire au juste ?
 
bonjour
tu peux pas démarrer une Vm par signal wol sur sa carte réseau ... c'est juste impossible : le wol est réservé aux cartes physiques qui restent en veille même si l'os est éteint, et qui agissent par l'envoi d'un signal à la carte mère pour réveiller le bousin ....

Qu'est ce que tu cherches à faire au juste ?
En gros, je voudrais mettre en veille la MV, et la réveiller via WOL pour éviter d'aller systématiquement la démarrer via VirutalBox, et donc me connecter dessus...
J'ai une application pratique pour ça en un clic ça lance le paquet WOL. (l'app c'est miniWOL).
 
- tu peux démarrer une vm sans passer par l'interface graphique de virtualbox
- si tu sais comment la mettre en veille , il y a moyen de la redémarrer en envoyant un 'acpi shutdown ' ou 'acpisleepbutton' .
Dans tous les cas ,envoi du signal poweron ou acpi_bidule, ça se fera depuis la ligne de commande de ton NAS .

Voici le topic ou j'explique le truc : https://forum.asustor.com/viewtopic.php?f=46&t=8147
tu as juste besoin de créer le script qui démarre ta vm, pas besoin de créer les liens pour la démarrer au boot sauf si c'est ce que tu veux faire .

recherche le mot 'startvm' qui est un argument de la commande 'vboxmanage' , cette commande permet de faire pleins de choses avec tes vm...
tu pourras sûrement remplacer startvm par acpixxx ,faut voir la doc de vboxmanage et adapter le script à ton usage

sources: https://linuxbsdos.com/2017/05/26/how-to-wake-a-virtualbox-guest-from-suspend-mode-in-linux/
 
Merci @shaks2022
Je regarderai ça demain sur l’ordi.
Mais je sens que ça ne va pas être la solution pour moi.
Je souhaite justement éviter de taper les mots de passes 😁or pour aller en ssh je dois taper le mot de passe du compte administrateur et aussi son code otp (nouveauté depuis adm 4.2)…
Ça va rallonger le temps d’accès à l’endroit où je vais pouvoir lancer la VM…
Entrer le mdp en CLI c’est plus long que de laisser Bitwarden le faire sur le navigateur…
Je pense que je ne vais pas avoir le choix… À moins de trouver une combine pour que la mise en veille de la vm se fasse lorsqu’elle n’est plus utilisée sans que ce soit une veille prolongée…
En gros je veux éviter de la faire tourner à plein sans qu’elle soit réellement utilisée car ça fait chauffer le nas et il ventile alors assez fortement… ce qui fait assez de bruit pour être audible (le canapé est juste au dessous du caisson du nas )

En tout cas merci pour le lien , à défaut de me servir des commandes pour l’utilisation souhaitée ça me servira pour d’autres fois où je tente des réglages.

D’ailleurs , saurais tu pourquoi je ne peux pas activer l’accélération matériel 2D ni 3D pour le Linux Mint et pour Windows ?

Dernière question : quand j’allume la MV Linux Mint j’ai un message disant qu’il n’y a pas de pilote graphique…
Comment je les trouves ces pilotes ou sinon comment je vire définitivement ce message ?

J’ai fait un autre sujet à ce propos, mais je n’ai plus le lien là… quand je l’ai retourné je le poste ici 😊
 
Pour aller en ssh depuis où ? parce que la plupart des clients ssh permettent de se connecter via échange de clés .
Je travaille comme ça depuis 2015, soit de mon laptop Linux fedora , soit depuis connectbot sous Android ( là ,j'ai rajouté in mdp sur la clé ssh en plus )
Et en plus j'arrive directement root sur le nas alors que mon compte admin est inactif .
Et la maj vers 4.2 n'a rien changé à tout ça ..
 
Pour aller en ssh depuis où ? parce que la plupart des clients ssh permettent de se connecter via échange de clés .
Je travaille comme ça depuis 2015, soit de mon laptop Linux fedora , soit depuis connectbot sous Android ( là ,j'ai rajouté in mdp sur la clé ssh en plus )
Et en plus j'arrive directement root sur le nas alors que mon compte admin est inactif .
Et la maj vers 4.2 n'a rien changé à tout ça ..
Moi j'utilise un terminal (iTerm2 depuis macOS, et WIndows Terminal depuis windows).
Je n'ai jamais voulu utiliser le système de clé pour me connecter, car dans ce cas-là, si un malintentionné prend possession de mon ordinateur et arrive à s'y connecter, il peut accéder au NAS (ou si j'ai une intrusion sur mon ordi).
Je préfère passer quelques secondes à taper le mot de passe, ça m'empêche d'y aller trop facilement et trop vite...
 
Moi j'utilise un terminal (iTerm2 depuis macOS, et WIndows Terminal depuis windows).
Je n'ai jamais voulu utiliser le système de clé pour me connecter, car dans ce cas-là, si un malintentionné prend possession de mon ordinateur et arrive à s'y connecter, il peut accéder au NAS (ou si j'ai une intrusion sur mon ordi).
Je préfère passer quelques secondes à taper le mot de passe, ça m'empêche d'y aller trop facilement et trop vite...
Arrive un moment où il faut décréter une machine comme étant de confiance . Mon laptop n'est allumé que quand je l'ai sous les yeux et ne sort pas de chez moi .
Par ailleurs un hack un peu malin consiste à utiliser un Keylogger qui va juste capturer la frappe de ton mot de passe .
Je tape un mot de passe de clé sur mon Android car je crains le vol de mon smartphone , mais pas sur mon laptop .
Tu peux toujours créer une clé avec mot de passe , ça sera plus sécurisé que juste le mot de passe .
En gros je veux éviter de la faire tourner à plein sans qu’elle soit réellement utilisée car ça fait chauffer le nas et il ventile alors assez fortement…
Je comprends toujours pas le souci : soit ta vm a des choses à faire et alors elle consomme de la ressource cpu ,soit elle a rien à faire ,et pour le nas , c'est juste un processus à l'arrêt qui consomme beaucoup de ram.
Si ton NAS s'emballe avec une vm au repos ,t'as peut-être un souci de paramétrage ram: trop de ram allouée à la vm et le nas doit swapper pour exécuter ses autres fonctions .
 
En regardant les stats d'activités du NAS alors que la VM est lancée, mais pas utilisée :
1671708632369.png
En effet, ça ne surcharge pas le CPU... et le NAS reste inaudible.
Du coup, OK, je vais faire en sorte de la laissée lancée ;) et lancée au démarrage du NAS pourquoi pas ^^

Pour le reste, concernant l'accès SSH, ça me laisse à réfléchir. Faut que je vois comment faire pour me connecter avec une clé depuis macOS...
 
@shaks2022
Alors, j'ai du modifier un peu le script pour le rendre fonctionnel avec un nom de VM contenant des espaces.
Et aussi pour l'extinction, l'argument acpipowerbutton en fonctionne pas, ça n'éteint pas ma VM. Seul poweroff éteint bien la VM.

Voilà le script modifié :
Bash:
#!/bin/sh
# link it with /usr/local/etc/init.d/S82VMlinuxmintuefi
# link it with /usr/local/etc/init.d/K60VMlinuxmintuefi
# ln -s /share/Syst_interne/StartStopVM_LinuxMintUEFI.sh /usr/local/etc/init.d/S82VMgrenouille
# ln -s /share/Syst_interne/StartStopVM_LinuxMintUEFI.sh /usr/local/etc/init.d/K60VMgrenouille

PKG_PATH=/usr/local/AppCentral/virtualbox
## ASPORTAL_PATH=/usr/local/AppCentral/asportal
## ASPORTAL_STAT=`apkg --info-installed asportal | grep 'Enabled:' | awk '{print $2}'`
## rcP=/usr/local/etc/init.d/P19virtualbox
## DRV_PATH=/usr/local/AppCentral/media-pack/drivers/

if [ ! -e $PKG_PATH/CONTROL/env.sh ]; then
        echo "Can't find $PKG_PATH/CONTROL/env.sh"
        exit 1
fi

# source $PKG_PATH/CONTROL/env.sh

VM_NAME="Linux Mint 21.1 UEFI"

source $PKG_PATH/CONTROL/env.sh
. /lib/lsb/init-functions

VBoxManage list vms | grep "$VM_NAME" >/dev/null 2>&1
if [ $? -ne 0 ]; then
        log_failure_msg "VM $VM_NAME seems not to exists"
        log_end_msg 255
else
        echo -e "\nVM $VM_NAME exists and will be started or stopped.\n"
fi

case "$1" in
start)
        log_daemon_msg "-> Starting VM" "$VM_NAME"
        echo -e "\n"
        VBoxManage list runningvms | grep "$VM_NAME" >/dev/null 2>&1
        if [ $? -eq 0 ]; then
                log_warning_msg "/!\\ VM $VM_NAME is already started, nothing done."
        else
                VBoxManage startvm "$VM_NAME" --type headless
                BCLE=20
                RETCOD=1
                while [ \( $BCLE -gt 0 \) -a \( $RETCOD -ne 0 \) ]; do
                        VBoxManage list runningvms | grep "$VM_NAME" >/dev/null 2>&1
                        RETCOD=$?
                        BCLE=$(expr $BCLE - 1)
                        [ $RETCOD -ne 0 ] && sleep 10
                done
                if [ $RETCOD -ne 0 ]; then
                        log_failure_msg "/!\\ VM $VM_NAME unable to start !"
                fi
        fi
        log_end_msg 0
        ;;

stop)
        log_daemon_msg "-> Stopping VM" "$VM_NAME"
        echo -e "\n"
        VBoxManage list runningvms | grep "$VM_NAME" >/dev/null 2>&1
        if [ $? -ne 0 ]; then
                log_warning_msg "VM $VM_NAME is already stopped, nothing done."
        else
                # gracefully stopping VM by short pressing power button
                # VBoxManage controlvm "$VM_NAME" acpipowerbutton
                VBoxManage controlvm "$VM_NAME" poweroff
                BCLE=20
                RETCOD=0
                while [ \( $BCLE -gt 0 \) -a \( $RETCOD -eq 0 \) ]; do
                        VBoxManage list runningvms | grep "$VM_NAME" >/dev/null 2>&1
                        RETCOD=$?
                        BCLE=$(expr $BCLE - 1)
                        [ $RETCOD -eq 0 ] && sleep 10
                done
                if [ $RETCOD -eq 0 ]; then
                        log_failure_msg "/!\\ VM $VM_NAME unable to stop"
                fi
        fi
        log_end_msg 0
        ;;

*)
        echo "$1 option not recognized or no option passed !"
        echo "Usage: $0 {start|stop}"
        exit 2
        ;;
esac


Et les quelques modifications faites dans le fichier /usr/local/AppCentral/virtualbox/CONTROL/env.sh :

  • Bash:
    DEBUG="flase"
    À modifier en :
    Bash:
    DEBUG="false"
    D'après l'auteur du post anglais, ça ne pose à priori pas de soucis. Mais, c'est préférable d'avoir une valeur correcte.

  • Bash:
    export VIRTUALBOX_LD_LIBRARY_PATH=$PKG_PATH/lib:$XORG_LD_LIBRARY_PATH
    À modifier en :
    Bash:
    export VIRTUALBOX_LD_LIBRARY_PATH=$PKG_PATH/bin:$XORG_LD_LIBRARY_PATH
    D'après l'auteur du post anglais, il apparait que le dossier .../lib n'est plus présent, et est remplacé par un dossier .../bin

Voilà ;)
Maintenant faut que je fasse les liens, et que je tente le reboot du NAS :)

J'ajouterais bien du code pour me relancer certains conteneurs Docker...
 
Après un reboot, (et bien sûr après avoir fait les liens), la VM a bien redémarré :)

@shaks2022 Pourrais-tu m'expliquer comment fonctionne les liens qu'on place dans /usr/local/etc/init.d/ ?
Pour savoir comment je peux y placer des liens vers d'autres scripts ? (Notemment pour relancer des conteneurs Docker qui ne se serait pas relancer comme ils l'auraient du)
 
Après un reboot, (et bien sûr après avoir fait les liens), la VM a bien redémarré :)

@shaks2022 Pourrais-tu m'expliquer comment fonctionne les liens qu'on place dans /usr/local/etc/init.d/ ?
Pour savoir comment je peux y placer des liens vers d'autres scripts ? (Notemment pour relancer des conteneurs Docker qui ne se serait pas relancer comme ils l'auraient du)
@MilesTEG1 : c'était initialement une réponse pour monter en fstab hein... :D

les liens ne sont pas placés dans /etc/init.d mais font référence au script placé dans /etc/init.d . Ils sont placés dans /etc/rcX.d où ils sont alors lus par le process 'init' en charge de l'arrêt /démarrage .
pour simplifier , init colle l'option 'start ' à tout ce qui se nomme Sxxxx et 'stop' à tout ce qui se nomme 'Kxxx' .
acpixxx ne fonctionne que si on a installé le 'vbox guest addition ' sur la vm.
 
  • J'aime
Réactions: jeu2
Bonjour,

La valeur flase ou false de la variable DEBUG ne pose pas de problème, car c'est la déclaration de variable, si elle n'est pas sur true, la condition NE se lancera PAS.

Correctif:
Bash:
sed -i -e "s/flase/false/" /volume1/.@plugins/AppCentral/virtualbox/CONTROL/env.sh

Activation DEBUG:
Bash:
sed -i -e "s/DEBUG\=\"false\"/DEBUG\=\"true\"/" /volume1/.@plugins/AppCentral/virtualbox/CONTROL/env.sh
sed -i -e "s/DEBUG\=\"true\"/DEBUG\=\"false\"/" /volume1/.@plugins/AppCentral/virtualbox/CONTROL/env.sh
 
Dernière édition:
  • J'aime
Réactions: MilesTEG