{"id":20537,"date":"2013-09-15T09:35:41","date_gmt":"2013-09-15T09:35:41","guid":{"rendered":"http:\/\/www.inacreditavel.pt\/?p=20537"},"modified":"2013-10-27T18:11:32","modified_gmt":"2013-10-27T18:11:32","slug":"kernel-3-10-11","status":"publish","type":"post","link":"http:\/\/www.inacreditavel.pt\/?p=20537","title":{"rendered":"Kernel 3.10.11"},"content":{"rendered":"<p>Ontem atualizei todas as m\u00e1quinas para o Kernel 3.10.11. Houve dois precal\u00e7os:<\/p>\n<ul>\n<li>Uma das m\u00e1quinas, que j\u00e1 tinha tido problemas na \u00faltima atualiza\u00e7\u00e3o (n\u00e3o arrancou e tive que arrancar de DVD e espetar-lhe um kernel alternativo), teve problemas na atualiza\u00e7\u00e7\u00e3o do kernel. Deu umas mensagens do tipo: &#8220;read only file system&#8221; e n\u00e3o deixava criar ou apagar ficheiros. Tamb\u00e9m n\u00e3o deixava editar, apenas visualizar. \u00c9 uma m\u00e1quina nova. Foi criada aquando da <a href=\"http:\/\/www.inacreditavel.pt\/?p=20483\">\u00faltima mudan\u00e7a na rede<\/a>. Fiz backup dos ficheiros de configura\u00e7\u00e3o mais recentes e vou recriar a m\u00e1quina pois parece haver ali uma instabilidade que n\u00e3o identifico.<\/li>\n<li>N\u00e3o conseguia correr o X-Windows em m\u00e1quinas para l\u00e1 do gateway da rede de PCs. Procurei em todo o lado, mas n\u00e3o consegui encontrar o problema: alterei as firewalls internas, removi-as, voltei a coloc\u00e1-las, reiniciei as m\u00e1quinas, etc. No fim, depois de um teste simult\u00e2neo a todas as m\u00e1quinas envolvidas com o tcpdump a correr em todo o lado, descobri que uma das linhas de tabela de routing n\u00e3o tinha entrado na \u00faltima configura\u00e7\u00e3o e, por isso, o host das m\u00e1quinas virtuais n\u00e3o via a rede de PCs.<\/li>\n<\/ul>\n<p>Agora vou criar o tal servidor problem\u00e1tico, de novo e no fim vai ser necess\u00e1rio reiniciar o host das m\u00e1quinas virtuais. Vou usar os mesmos comandos que usei da <a href=\"http:\/\/www.inacreditavel.pt\/?p=20472\">\u00faltima vez<\/a>. Estes comandos s\u00e3o necess\u00e1rios para recompilar o VirtualBox para a nova vers\u00e3o do Kernel do Linux.<\/p>\n<div style=\"border: 2px solid black; border-radius: 5px; box-shadow: 5px 5px 5px grey; background-color: lightyellow; margin: 10px; padding: 8px; font-family: monospace;font-size:0.85em;line-height:10px;\">cd \/root<br \/>\nbat\/vboxes stop<br \/>\ncd \/usr\/local\/<br \/>\nVBoxManage extpack uninstall &#8220;Oracle VM VirtualBox Extension Pack&#8221;<br \/>\nreboot<br \/>\nexit<br \/>\ncd \/usr\/local\/<br \/>\nchmod +x .\/VirtualBox-4.2.18-88780-Linux_amd64.run<br \/>\n.\/VirtualBox-4.2.18-88780-Linux_amd64.run<br \/>\nVBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.2.18-88780.vbox-extpack<br \/>\ncd &#8211;<br \/>\nbat\/vboxes start<\/div>\n<p>Depois \u00e9 importante verificar se h\u00e1 <em>routing<\/em> para a rede de PCs.<\/p>\n<p>Nota : o ficheiro <strong>bat\/vboxes<\/strong> \u00e9 um ficheiro de comandos que criei para gerir as m\u00e1quinas virtuais do VirtualBox. J\u00e1 agora, este script serve para lan\u00e7ar as m\u00e1quinas virtuais em modo headless e tem o conte\u00fado seguinte:<\/p>\n<div style=\"border: 2px solid black; border-radius: 5px; box-shadow: 5px 5px 5px grey; background-color: lightyellow; margin: 10px; padding: 8px; font-family: monospace;font-size:0.9em;line-height:12px;\">#!\/bin\/sh<br \/>\n# PATH should only include \/usr\/* if it runs after the mountnfs.sh script<br \/>\nPATH=\/usr\/sbin:\/usr\/bin:\/sbin:\/bin<br \/>\nSCRIPTNAME=\/root\/bat\/vboxes<br \/>\nMANAGE_CMD=\/root\/bat\/vbox<\/p>\n<p>case &#8220;$1&#8221; in<br \/>\n  start|stop|shutdown|restart|force-reload)<br \/>\n        echo &#8220;&#8211; $1 virtual boxes &#8211;&#8221;<br \/>\n        ;;<br \/>\n  *)<br \/>\n        echo &#8220;Usage: $SCRIPTNAME {start|stop|shutdown|restart|force-reload}&#8221; >&#038;2<br \/>\n        exit 3<br \/>\n        ;;<br \/>\nesac<\/p>\n<p>for i in `VBoxManage list vms | grep &#8220;^\\&#8221;&#8221; | sed -e &#8220;s\/{.*}\/\/g&#8221; | sed -e &#8220;s\/\\&#8221;\/\/g&#8221;`;<br \/>\ndo<br \/>\n        echo &#8220;$MANAGE_CMD $i $1&#8221;<br \/>\n        $MANAGE_CMD $i $1<br \/>\ndone<\/p><\/div>\n<p>No script anterior fa\u00e7o refer\u00eancia a um outro script <strong>bat\/vbox<\/strong> cujo conte\u00fado se segue e seve para gerir uma m\u00e1quina virtual de cada vez (ver c\u00f3digo original <a href=\"http:\/\/wiki.contribs.org\/VirtualBox_4.0_on_SME_Server_v8_beta_6\">aqui<\/a>)):<\/p>\n<div style=\"border: 2px solid black; border-radius: 5px; box-shadow: 5px 5px 5px grey; background-color: lightyellow; margin: 10px; padding: 8px; font-family: monospace;font-size:0.85em;line-height:10px;\">#!\/bin\/sh<br \/>\n### BEGIN INIT INFO<br \/>\n# Provides:  vbox<br \/>\n# Required-Start:$local_fs $remote_fs vboxdrv vboxnet<br \/>\n# Required-Stop: $local_fs $remote_fs<br \/>\n# Default-Start: 2 3 4 5<br \/>\n# Default-Stop:  0 1 6<br \/>\n# Short-Description: MAQUINA virtual machine<br \/>\n# Description:   MAQUINA virtual machine hosted by VirtualBox<br \/>\n### END INIT INFO<\/p>\n<p># Author: Brendan Kidwell <brendan@glump.net><br \/>\n#<br \/>\n# Based on \/etc\/init.d\/skeleton from Ubuntu 8.04. Updated for Ubuntu 9.10.<br \/>\n# If you are using Ubuntu <9.10, you might need to change \"Default-Stop\"\n# above to \"S 0 1 6\".\n\n# Do NOT \"set -e\"\n\n# O nome da m\u00e1quina tem que vir como 1\u00ba par\u00e2metro\n# O nome do comando tem que vir como 2\u00ba par\u00e2metro\nMAQUINA=\"$1\"\nCOMANDO=\"$2\"\n\n# PATH should only include \/usr\/* if it runs after the mountnfs.sh script\nPATH=\/usr\/sbin:\/usr\/bin:\/sbin:\/bin\nDESC=\"$MAQUINA virtual machine\"\nNAME=vbox\nSCRIPTNAME=\/root\/bat\/$NAME\n\nMANAGE_CMD=VBoxManage\nVM_OWNER=root\nVM_NAME=\"$MAQUINA\" #This has to be the name exactly as it appears in your VirtualBox GUI control panel.\n\n# Read configuration variable file if it is present\n[ -r \/etc\/default\/$NAME ] &#038;&#038; . \/etc\/default\/$NAME\n\n# Load the VERBOSE setting and other rcS variables\n[ -f \/etc\/default\/rcS ] &#038;&#038; . \/etc\/default\/rcS\n\n# Define LSB log_* functions.\n# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.<br \/>\n#. \/lib\/lsb\/init-functions<\/p>\n<p>#<br \/>\n# Function that starts the daemon\/service<br \/>\n#<br \/>\ndo_start()<br \/>\n{<br \/>\n        # Return<br \/>\n        #   0 if daemon has been started<br \/>\n        #   1 if daemon was already running<br \/>\n        #   2 if daemon could not be started<\/p>\n<p>        sudo -H -u $VM_OWNER $MANAGE_CMD showvminfo &#8220;$VM_NAME&#8221;|grep &#8220;^State:\\s*running&#8221; >\/dev\/null &#038;&#038; {<br \/>\n        echo &#8220;$VM_NAME&#8221; is already running.<br \/>\n        return 1<br \/>\n        }<\/p>\n<p>        sudo -H -u $VM_OWNER $MANAGE_CMD startvm &#8220;$VM_NAME&#8221; -type headless >\/dev\/null || {<br \/>\n        echo Failed to start &#8220;$VM_NAME&#8221;.<br \/>\n        return 2<br \/>\n        }<\/p>\n<p>        echo &#8220;$VM_NAME&#8221; started or resumed.<br \/>\n        return 0<br \/>\n}<\/p>\n<p>#<br \/>\n# Function that stops the daemon\/service<br \/>\n#<br \/>\ndo_stop()<br \/>\n{<br \/>\n        # Return<br \/>\n        #   0 if daemon has been stopped<br \/>\n        #   1 if daemon was already stopped<br \/>\n        #   2 if daemon could not be stopped<br \/>\n        #   other if a failure occurred<\/p>\n<p>        sudo -H -u $VM_OWNER $MANAGE_CMD showvminfo &#8220;$VM_NAME&#8221;|grep &#8220;^State:\\s*running&#8221; >\/dev\/null || {<br \/>\n        echo &#8220;$VM_NAME&#8221; is already stopped.<br \/>\n        return 1<br \/>\n        }<\/p>\n<p>        sudo -H -u $VM_OWNER $MANAGE_CMD controlvm &#8220;$VM_NAME&#8221; savestate || {<br \/>\n        echo Failed to stop &#8220;$VM_NAME&#8221;.<br \/>\n        return 2<br \/>\n        }<\/p>\n<p>        echo &#8220;$VM_NAME&#8221; suspended.<br \/>\n        return 0<br \/>\n}<\/p>\n<p>#<br \/>\n#<br \/>\n# Function that powers off the daemon\/service<br \/>\n#<br \/>\ndo_shutdown()<br \/>\n{<br \/>\n        # Return<br \/>\n        #   0 if daemon has been stopped<br \/>\n        #   1 if daemon was already stopped<br \/>\n        #   2 if daemon could not be stopped<br \/>\n        #   other if a failure occurred<\/p>\n<p>        sudo -H -u $VM_OWNER $MANAGE_CMD showvminfo &#8220;$VM_NAME&#8221;|grep &#8220;^State:\\s*running&#8221; >\/dev\/null || {<br \/>\n        echo &#8220;$VM_NAME&#8221; is already stopped.<br \/>\n        return 1<br \/>\n        }<\/p>\n<p>        sudo -H -u $VM_OWNER $MANAGE_CMD controlvm &#8220;$VM_NAME&#8221; acpipowerbutton || {<br \/>\n        echo Failed to stop &#8220;$VM_NAME&#8221;.<br \/>\n        return 2<br \/>\n        }<\/p>\n<p>        echo &#8220;$VM_NAME&#8221; powered off.<br \/>\n        return 0<br \/>\n}<\/p>\n<p>#<br \/>\n# Display &#8220;State&#8221; field from showinfo action<br \/>\n#<br \/>\ndo_status()<br \/>\n{<br \/>\n        sudo -H -u $VM_OWNER $MANAGE_CMD showvminfo &#8220;$VM_NAME&#8221;|grep &#8220;^State:\\s*.*$&#8221;<br \/>\n}<\/p>\n<p>case &#8220;$COMANDO&#8221; in<br \/>\n  start)<br \/>\n        [ &#8220;$VERBOSE&#8221; != no ] &#038;&#038; logger &#8220;Starting $DESC&#8221; &#8220;$NAME&#8221;<br \/>\n        do_start<br \/>\n        case &#8220;$?&#8221; in<br \/>\n                0|1) [ &#8220;$VERBOSE&#8221; != no ] &#038;&#038; logger 0 ;;<br \/>\n                2) [ &#8220;$VERBOSE&#8221; != no ] &#038;&#038; logger 1 ;;<br \/>\n        esac<br \/>\n        ;;<br \/>\n  stop)<br \/>\n        [ &#8220;$VERBOSE&#8221; != no ] &#038;&#038; logger &#8220;Stopping $DESC&#8221; &#8220;$NAME&#8221;<br \/>\n        do_stop<br \/>\n        case &#8220;$?&#8221; in<br \/>\n                0|1) [ &#8220;$VERBOSE&#8221; != no ] &#038;&#038; logger 0 ;;<br \/>\n                2) [ &#8220;$VERBOSE&#8221; != no ] &#038;&#038; logger 1 ;;<br \/>\n        esac<br \/>\n        ;;<br \/>\n  shutdown)<br \/>\n        [ &#8220;$VERBOSE&#8221; != no ] &#038;&#038; logger &#8220;Powering off $DESC&#8221; &#8220;$NAME&#8221;<br \/>\n        do_shutdown<br \/>\n        case &#8220;$?&#8221; in<br \/>\n                0|1) [ &#8220;$VERBOSE&#8221; != no ] &#038;&#038; logger 0 ;;<br \/>\n                2) [ &#8220;$VERBOSE&#8221; != no ] &#038;&#038; logger 1 ;;<br \/>\n        esac<br \/>\n        ;;<br \/>\n  restart|force-reload)<br \/>\n        #<br \/>\n        # If the &#8220;reload&#8221; option is implemented then remove the<br \/>\n        # &#8216;force-reload&#8217; alias<br \/>\n        #<br \/>\n        logger &#8220;Restarting $DESC&#8221; &#8220;$NAME&#8221;<br \/>\n        do_stop<br \/>\n        case &#8220;$?&#8221; in<br \/>\n          0|1)<br \/>\n                do_start<br \/>\n                case &#8220;$?&#8221; in<br \/>\n                        0) logger 0 ;;<br \/>\n                        1) logger 1 ;; # Old process is still running<br \/>\n                        *) logger 1 ;; # Failed to start<br \/>\n                esac<br \/>\n                ;;<br \/>\n          *)<br \/>\n                # Failed to stop<br \/>\n                logger 1<br \/>\n                ;;<br \/>\n        esac<br \/>\n        ;;<br \/>\n  status)<br \/>\n        do_status<br \/>\n        ;;<br \/>\n  *)<br \/>\n        #echo &#8220;Usage: $SCRIPTNAME nome-maquina {start|stop|shutdown|restart|reload|force-reload}&#8221; >&#038;2<br \/>\n        echo &#8220;Usage: $SCRIPTNAME nome-maquina {start|stop|shutdown|restart|force-reload|status}&#8221; >&#038;2<br \/>\n        exit 3<br \/>\n        ;;<br \/>\nesac<\/p><\/div>\n<p>Usei outro script logo no arranque da m\u00e1quina (<em>host<\/em>) para criar placas de rede virtuais para serem usadas pelas m\u00e1quinas virtuais. S\u00e3o criadas como uma ponte (<em>bridge<\/em>) para uma placa f\u00edsica no <em>host<\/em> que s\u00f3 serve para rencaminhar o tr\u00e1fego das m\u00e1quinas virtuais para a rede e vice-versa. O seu conte\u00fado \u00e9 o seguinte:<\/p>\n<div style=\"border: 2px solid black; border-radius: 5px; box-shadow: 5px 5px 5px grey; background-color: lightyellow; margin: 10px; padding: 8px; font-family: monospace;font-size:0.9em;line-height:12px;\">#!\/bin\/sh<br \/>\n# set PATH for the case we are called via sudo or su root<br \/>\n# PATH=\/sbin:\/usr\/bin:\/bin:\/usr\/bin<\/p>\n<p>USER=root<\/p>\n<p>NUMBER_OF_VM=9<br \/>\n# create the bridge<br \/>\nbrctl addbr br0<\/p>\n<p># create the taps and insert them into the bridge<\/p>\n<p>NB=1<br \/>\nwhile [ $NB -le $NUMBER_OF_VM ]<br \/>\ndo<br \/>\n   tunctl -t tap$NB -u $USER<br \/>\n   ip link set up dev tap$NB<br \/>\n   brctl addif br0 tap$NB<br \/>\n   let NB=$NB+1<br \/>\ndone<\/p>\n<p>ip route add 192.168.40.0\/24 dev eth1<\/p>\n<p># set the IP address and routing<br \/>\nip link set up dev br0<br \/>\nip addr add 192.168.40.1\/24 dev br0<br \/>\n##ip route add 192.168.40.0\/24 dev br0<\/p>\n<p>brctl addif br0 eth1<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ontem atualizei todas as m\u00e1quinas para o Kernel 3.10.11. Houve dois precal\u00e7os: Uma das m\u00e1quinas, que j\u00e1 tinha tido problemas na \u00faltima atualiza\u00e7\u00e3o (n\u00e3o arrancou e tive que arrancar de DVD e espetar-lhe um kernel alternativo), teve problemas na atualiza\u00e7\u00e7\u00e3o do kernel. Deu umas mensagens do tipo: &#8220;read only file system&#8221; e n\u00e3o deixava criar [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"_links":{"self":[{"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=\/wp\/v2\/posts\/20537"}],"collection":[{"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=20537"}],"version-history":[{"count":15,"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=\/wp\/v2\/posts\/20537\/revisions"}],"predecessor-version":[{"id":20750,"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=\/wp\/v2\/posts\/20537\/revisions\/20750"}],"wp:attachment":[{"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=20537"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=20537"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.inacreditavel.pt\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=20537"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}