Formattare una chiavetta in ext4 (Linux CentOS 6.x)

Questo articolo è una bozza.

Identificare la chiavetta con:
fdisk -l

ATTENZIONE: le istruzioni seguenti cancelleranno il contenuto della chiavetta!

Usare:
fdisk /dev/sdx

Per:

  • Cancellare eventuali partizioni presenti
  • Creare una nuova partizione
  • Assegnarle il tipo 83

Formattare la partizione con:
mkfs.ext4 -L ETICHETTA /dev/sdx1

FINITO.

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page

Come installare Invoicex in rete con server Windows MySQL

Questo articolo è una bozza.

Parte 1: MySQL

(operazioni da eseguire solo sul PC che fungerà da server)

Download del file Windows (x86, 64-bit), ZIP Archive da:
http://dev.mysql.com/downloads/mysql/

Scompattare in:
C:\mysql

Da prompt di MS-DOS come amministratore:
C:\mysql\bin>mysqld --install
C:\mysql\bin>net start mysql
C:\mysql\bin>mysql -u root

Da console MySQL:
USE mysql;
UPDATE user SET password = PASSWORD('123') WHERE user = 'root';
SELECT user, host FROM user;
DELETE FROM user WHERE user = '';
SELECT user, host FROM user;
FLUSH PRIVILEGES;
SHOW DATABASES;
DROP DATABASE test;
SHOW DATABASES;
QUIT

Da prompt di MS-DOS come amministratore:
C:\mysql\bin>mysql -u root -p

Da console MySQL:
CREATE DATABASE invoicex_db DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'invoicex_user'@'%' IDENTIFIED BY '123';
GRANT ALL ON invoicex_db.* TO 'invoicex_user'@'%';
QUIT

Da prompt di MS-DOS come amministratore:
C:\mysql\bin>mysql -u invoicex_user -p

Da console MySQL:
USE invoicex_db;

CREATE TABLE `test` (
`field` varchar(255)
);

SHOW TABLES;
DROP TABLE test;
SHOW TABLES;
QUIT

Ricorsarsi di creare eccezione per il firewall in ingresso e in uscita per la porta 3306.

Parte 2: Invoicex

(operazioni da eseguire su tutti PC che fungeranno da client)

Scaricare Invoicex versione base da:
http://www.invoicex.it/

Effettuare l’installazione standard

Al primo accesso, quando viene chiesto se utilizzare in locale o in rete, scegliere in rete e indicare l’indirizzo IP del PC su cui si è installato MySQL, nome del database (nell’esempio invoicex_db), username e password del database (nell’esempio invoicex_user e 123).

FINITO.

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page

NethServer: ricostruire il mirror software

Ho di recente iniziato a sperimentare con una distribuzione Linux molto interessante che si chiama NethServer. E’ una distribuzione italiana basata su CentOS 6 che si propone di realizzare alcuni task tipici in una azienda medio/piccola con semplicità e con l’utilizzo di una interfaccia web molto completa.

I parametri di installazione sono ridotti al minimo (indirizzo IP del server e poco altro) per velocizzare l’installazione e di standard, in presenza di due dischi, l’installatore crea un RAID mirror software con un volume LVM già dimensionato adeguatamente.

Il primo dubbio che mi sono posto è cosa fare se un disco del mirror si guasta.

Non sono un sistemista Linux esperto, ma con un paio di prove sono riuscito ad ottenere il risultato desiderato.

ATTENZIONE! Ciascuno di questi comandi è potenzialmente pericoloso per i vostri dati se usato senza criterio. Non limitatevi ad un copia e incolla senza riflettere!

Supponiamo che a guastarsi sia stato il disco sdb.

Se verifichiamo con il comando:

cat /proc/mdstat

Le partizioni del mirror avranno una situazione di fail sul secondo disco, identificata dalla sigla [U_].

Dopo aver sostituito il disco con uno vergine o comunque “sacrificabile”, come prima cosa, dobbiamo creare una tabella delle partizioni identica a quella del disco ancora funzionante. Possiamo farlo con il comando:

sfdisk -d /dev/sda | sfdisk /dev/sdb --force

L’opzione --force si rende necessaria perché CentOS è un po’ pignolo e pare che la configurazione automatica di NethServer lasci qualche cilindro non utilizzato.

Ora dobbiamo aggiungere le partizioni di boot e principale al RAID e lo facciamo con i comandi:

mdadm --manage /dev/md1 --add /dev/sdb1
mdadm --manage /dev/md2 --add /dev/sdb2

A questo punto il raid è di nuovo attivo ed inizierà la sincronizzazione, che possiamo monitorare con il comando:

cat /proc/mdstat

Quando sarà terminata non ci saranno più percentuali di recovery in corso ed entrambe le partizioni saranno “up”, cioè con il simbolo [UU].

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page

Aggiungere driver di rete Realtek e Marvell a ESXi 5.5 Update 2

Chi, come il sottoscritto, si cimenta per le prime volte con VMWare, si renderà conto presto o tardi che non sempre l’equazione più nuovo uguale migliore è corretta.

Nel nostro caso lo sarà in assoluto (sicuramente dalle versione 5.0 e 5.1 alla 5.5 le migliorie sono tante), ma ci creerà qualche problema per il setup su sistemi non “professionali”.

Infatti se la limitazione di memoria (minimo 4GB) ormai è abbastanza facilmente aggirabile visti i prezzi non spropositati della ram, lo stesso non si può dire di quella delle schede di rete.

Con l’avvento della release 5.5 di ESXi VMWare ha deciso di estromettere dalla release tutti i driver non supportati direttamente dalla casa madre. Questo ha portato ad escludere praticamente tutte le schede di rete con chipset Realtek e Marvell a favore di quelle con chipset Intel.

Il problema è che la stragrande maggioranza delle schede di rete integrate nelle motherboard di fascia consumer e di quelle PXI express economiche sono a chipset Realtek!

Leggendo qua e su Internet ho scoperto che il driver presente fino alla versione 5.1 è in realtà ancora perfettamente funzionante ed è stato escluso solo per il discorso di licensing sopra citato (non è sviluppato in collaborazione con VMware e quindi rimarrà sempre nello status di “unsupported”).

Integrarlo non è semplicissimo, ma nemmeno impossibile.

L’unico problema è che tutti i tutorial che ho trovato si riferivano alle prime versioni della release 5.5, che invece è già arrivata all’update 2. Per creare ISO personalizzate è necessario conoscere il nome del profilo da clonare per poi aggiungere, informazione che appunto non trovavo da nessuna parte per la versione 5.5u2. Come spesso accade la cosa è più semplice del previsto: navigando all’interno dell’ISO scaricata da VMware ho trovato un file dal nome eloquente e cioè PROFILE.XML. Bingo! Il ramo da clonare (a quanto ho capito il meccanismo è simile al merge di GitHub per clonare e aggiornare i sorgenti) si chiama ESXi-5.5.0-20140902001-standard.

Veniamo al dunque.

Guida quick-and-dirty sulle operazioni da effettuare.

STEP 1

Scaricare ed installare il tool di VMware PowerCLI da qui:

http://vmware.com/downloads/download.do?downloadGroup=PCLI501

STEP 2

Creare nella cartella di installazione un nuovo file di testo, chiamarlo ad esempio fixnic.ps1 (l’unica cosa realmente importante è l’estensione) ed incollarci lo script sottostante:

# Original script: http://www.ryanbirk.com/fixing-broken-realtek-and-marvell-nics-in-esxi-5-5/
# Some hints from script: http://www.v-front.de/2013/09/how-to-add-missing-esxi-50-drivers-to.html
# I found the profile name in VMware-VMvisor-Installer-5.5.0.update02-2068190.x86_64.iso\UPGRADE\PROFILE.XML

# If you've never used PowerCLI before, set the ExecutionPolicy to RemoteSigned. Skip this step if you have already.
Set-ExecutionPolicy RemoteSigned

# Makes sure the ImageBuilder snapin is added.
Add-PSSnapin VMware.ImageBuilder

# Connects to the software depot. Takes a few seconds to connect.
Add-EsxSoftwareDepot https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

# Takes the standard ESXi 5.5 update 2 iso and clones it so we can essentially slipstream in the missing drivers.
$OriginalProfile = Get-EsxImageProfile ESXi-5.5.0-20140902001-standard
$CustomizedProfile = New-EsxImageProfile -CloneProfile $OriginalProfile -Vendor $OriginalProfile.Vendor -Name (($OriginalProfile.Name) + "-w-realtek-marvell-NICs") -Description (($OriginalProfile.Description) + " with Realtek and Marvell NICs drivers")

# Use these two for broken Realtek adapters.
Add-EsxSoftwarePackage -SoftwarePackage "net-r8168" -ImageProfile $CustomizedProfile
Add-EsxSoftwarePackage -SoftwarePackage "net-r8169" -ImageProfile $CustomizedProfile

# Use these two for broken Marvell adapters.
Add-EsxSoftwarePackage -SoftwarePackage "net-sky2" -ImageProfile $CustomizedProfile
Add-EsxSoftwarePackage -SoftwarePackage "net-s2io" -ImageProfile $CustomizedProfile

# Take our newly modified profile and spit out an iso to use. This will take a few minutes. Be patient.
Export-EsxImageProfile -ImageProfile $CustomizedProfile -ExportToISO -FilePath ("D:\TEMPESXi\" + ($OriginalProfile.Name) + "-w-realtek-marvell-NICs" + ".iso")

STEP 3

Fare click col destro sul file appena salvato e scegliere Modifica: se avete fatto correttamente i passaggi precedenti il fle si aprirà in PowerCLI.

STEP 4

Cliccare l’icona con il tasto “Play” verde, confermare con Sì alla richiesta se realmente di desidera eseguire gli script non firmati e… Pazientare!

FINITO

Se tutto è corretto troverete la iso customizzata nella cartella desiderata: nel mio script di esempio si tratta di D:\TEMPESXi.

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page

Controller Active Directory con Ubuntu 14.04? Si… Può… Fare!!!

Ho cercato a lungo di mettere in piedi un primary domain controller con Linux e Samba. Senza risultato. Al punto che avevo del tutto rinunciato a favore di una soluzione “chiavi in mano”: Turnkey Domain Controller. Poi, un po’ la scarsità degli aggiornamenti, un po’ la mia proverbiale cocciutaggine (dovevo farlo io, non trovarlo già fatto!)

Ed è a questo punto della storia che si innesta questo articolo… Un primary domain controller con Linux e Samba si può fare, e in pochi minuti!!!

Anzi con Ubuntu 14.04 si può creare non solo un primary domain controller, ma addirittura un server Active directory che puoi gestire direttamente con i tool di Microsoft.

Vale decisamente una lettura e chissà, magari una traduzione prima o poi.

Setting up an Active Directory Domain Controller using Samba 4 on Ubuntu 14.04

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page
swap

Condividere lo spazio di swap tra Linux e Windows

Ho installato una bellissima SSD da 120 GB sul mio portatile. Come al solito ho una sistema un dual boot Windows (ora Seven) e Linux (ora Mint XFCE). Mi sono chiesto: sia Linux che Windows vogliono uno spazio di swap… Ma è possibile che non si possa usare lo stesso spazio anziché sprecarne di prezioso sulla SSD?
Dopo qualche ricerca infruttuosa mi sono imbattuto in questo splendido trucchetto: http://ubuntuforums.org/showthread.php?t=245393, che condivido (e traduco) sperando possa servire a qualcuno.
Si tratta, come capirete a breve, di usare la partizione di swap di Linux anche per il pagefile di Windows.
Quindi procedete con la vostra canonica installazione dual boot, avendo cura solamente che l’area di swap di Linux sia una partizione “fisica” e non all’interno di un volume LVM.
Ora avviate Windows, scaricate da http://www.acc.umu.se/~bosse/ il file SwapFs-3.0.zip (mirror).
Prima procedere dobbiamo capire dove si trova la partizione di swap secondo Windows.
Anche in questo caso mi sono rifatto ad un commento dell’articolo originale.
Apriamo un bel prompt dei comandi e digitiamo:

C:\>diskpart

Ora vediamo i dischi presenti:

DISKPART> list disk

N. disco Stato Dimensioni Disponibile Din GPT
-------- ------------- ------------- ------------- --- ---
Disco 0 Online 298 Gbytes 3602 Mbytes
Disco 1 Online 111 Gbytes 1024 Kbytes

Nel mio caso la SSD è il secondo disco (disco 1 dato che si parte da 0 a contare), quindi:

DISKPART> select disk 1

Il disco attualmente selezionato è il disco 1.

DISKPART> list partition

Partizione ### Tipo Dim. Offset
--------------- ---------------- ------- -------
Partizione 1 Primario 53 Gb 32 Kb
Partizione 2 Primario 53 Gb 53 Gb
Partizione 3 Primario 4096 Mb 107 Gb

Eccola lì, 4096MB, i miei 4GB di swap (il portatile ha 2GB di RAM).
Quindi mi annoto disco 1, partizione 3.

Ora apriamo il file swapfs.reg e adeguiamolo alle nostre necessità:

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SwapFs]

"ErrorControl"=dword:00000001

"Group"="Filter"

#
# When to start the driver:
# At boot: Start=1
# Manually: Start=3
#
"Start"=dword:00000001

"Type"=dword:00000001

#
# (/dev/hda1 in Linux = \\Device\\Harddisk0\\Partition1 in NT, an extended
# partition is skipped in the enumeration)
#

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SwapFs\Parameters]

"SwapDevice"="\\Device\\Harddisk1\\Partition3"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]

"S:"="\\Device\\Harddisk1\\Partition3"
Infine, ma non meno importante, copiamo il driver (swapfs.sys) in “%systemroot%\system32\drivers\”.

Al riavvio noteremo la presenza di una unità S: (che come vedete dalla figura, non corrisponde a nessuna partizione Windows) che sembra fatta apposta per noi… anzi lo è!

dischi

Nel mio caso ho abilitato la gestione automatica del file di swap solo su S: e ho creato un file di dimensione fissa 200MB che ho lasciato su C:.

memoria

Questo perché Windows si premura di farmi sapere che con senza un file di almeno 200MB su C: potrebbe non essere possibile reperire le informazioni di debug in caso di problemi.

Vero o no, 200MB sono un sacrificio che posso affrontare.

Un altro riavvio e… abbiamo liberato 4GB!

ATTENZIONE: la partizione S: lavora un po’ come un ramdisk ed il suo contenuto va perso allo spegnimento, quindi usiamola solo per il file di paging!!!

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page

Script To Create All In One Microsoft Windows Seven (7) Installation Media

Being a power user (or something less) I always wondered it it was possible to have a single media to install different versions of Microsoft Windows 7 (either flavour or architecture). The answer is yes and I wrote a little script to automate the job of “mixing” the installation media.Obviously no licence infringment is intended: you will need to own all the licences, but you can carry with you only one DVD!

Here it is:

@echo off
cls
echo ************************************************************************
echo * QUICK AND DIRTY MICROSOFT WINDOWS SEVEN ALL-IN-ONE-INSTALLER CREATOR *
echo * by UncleDan 24/09/2014 *
echo ************************************************************************
echo You will need:
echo - WAIK 3.0
echo http://www.microsoft.com/en-us/download/details.aspx?id=5753
echo - WAIK 3.1 Supplement
echo http://www.microsoft.com/en-us/download/details.aspx?id=5188
echo - 7-Zip
echo http://www.7-zip.org/
echo - PATIENCE!
echo Based on:
echo - http://technet.microsoft.com/en-us/library/dd744261(v=ws.10).aspx
echo.
echo All trademarks mentioned belong to their owners; third party brands,
echo product names, trade names, corporate names and company names mentioned
echo may be trademarks of their respective owners or registered trademarks
echo of other companies and are used for purposes of explanation and to the
echo owner's benefit, without implying a violation of copyright law.
echo.
echo Copyright (c) 2014, Daniele Lolli a.k.a. UncleDan ^<uncledan@uncledan.it^>
echo.
echo Permission to use, copy, modify, and/or distribute this software
echo for any purpose with or without fee is hereby granted, provided
echo that the above copyright notice and this permission notice
echo appear in all copies.
echo.
echo THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
echo WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
echo MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
echo ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
echo WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
echo ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
echo OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE
echo.
pause

rem VARIABLES

set SOURCE32=I:\Microsoft Windows 7 Professional (i386).iso
set SOURCE64=I:\Microsoft Windows 7 Professional (amd64).iso
set DESTINATION=J:\WIN7_UNI_x86-x64
set SEVENZIPPATH=C:\Program Files\7-Zip

rem SCRIPT

echo.
echo Extracting 32-bit image...
echo.
"%SEVENZIPPATH%\7z.exe" x "%SOURCE32%" -o"%DESTINATION%"
md %DESTINATION%\temp
move %DESTINATION%\sources\install.wim %DESTINATION%\temp\x86.wim

echo.
echo Extracting 64-bit image...
echo.
"%SEVENZIPPATH%\7z.exe" x "%SOURCE64%" -o"%DESTINATION%" install.wim -r
move %DESTINATION%\sources\install.wim %DESTINATION%\temp\x64.wim

echo.
echo Mixing...
echo.
imagex /EXPORT "%DESTINATION%\temp\x86.wim" 5 "%DESTINATION%\sources\install.wim" "Windows 7 Ultimate x86"
imagex /EXPORT "%DESTINATION%\temp\x64.wim" 4 "%DESTINATION%\sources\install.wim" "Windows 7 Ultimate x64"
imagex /EXPORT "%DESTINATION%\temp\x86.wim" 4 "%DESTINATION%\sources\install.wim" "Windows 7 Professional x86"
imagex /EXPORT "%DESTINATION%\temp\x64.wim" 3 "%DESTINATION%\sources\install.wim" "Windows 7 Professional x64"
imagex /EXPORT "%DESTINATION%\temp\x86.wim" 3 "%DESTINATION%\sources\install.wim" "Windows 7 Home Premium x86"
imagex /EXPORT "%DESTINATION%\temp\x64.wim" 2 "%DESTINATION%\sources\install.wim" "Windows 7 Home Premium x64"
imagex /EXPORT "%DESTINATION%\temp\x86.wim" 2 "%DESTINATION%\sources\install.wim" "Windows 7 Home Basic x86"
imagex /EXPORT "%DESTINATION%\temp\x64.wim" 1 "%DESTINATION%\sources\install.wim" "Windows 7 Home Basic x64"
imagex /EXPORT "%DESTINATION%\temp\x86.wim" 1 "%DESTINATION%\sources\install.wim" "Windows 7 Starter x86"

echo.
echo Doing latest tricks...
echo.
del "%DESTINATION%\sources\ei.cfg"
del "%DESTINATION%\sources\cversion.ini"
rd /S /Q "%DESTINATION%\temp"
echo CREATED WITH:>"%DESTINATION%\readme.txt"
echo.>>"%DESTINATION%\readme.txt"
type %0>>"%DESTINATION%\readme.txt"

echo.
echo Packaging ISO image...
echo.
oscdimg -n -m -b"%DESTINATION%\boot\etfsboot.com" "%DESTINATION%" "%DESTINATION%.iso"

echo.
echo Cleaning up...
echo.
rd /S /Q %DESTINATION%

echo.
echo ALL DONE.
echo.
pause
exit

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page

Come creare un server PXE per tutte le esigenze (Ubuntu 14.04.1)

Questo articolo è una bozza.

Aggiornato a nuove release Ubuntu 14.04.1 e Webmin 1.700 mercoledì 10/09/2014

Se vi è mai capitato di avere a che fare con un portatile o qualunque altro dispositivo col lettore CD rotto e che non avvia da USB (!), allora avrete capito l’utilità di un server PXE.
Per la definizione esatta vi rimando a Wikipedia o chi per lei: quello che tenterò di aiutarvi a capire è come preparare un server PXE che ci consenta di avviare gli strumenti di diagnostica di base e le installazioni di Linux e/o Windows.
Ho scelto una installazione con ProxyDHCP perché molto spesso il DHCP delle nostre reti è all’interno del router e non sempre è possibile inibirlo/configurarlo, specialmente se si tratta del modem in comodato d’uso di qualche ISP italiano (mettete un nome a caso, sono tutti della stessa risma!)
Questo non è un lavoro originale: molte idee sono prese da post letti qua e là googleando. Cercherò di citare tutte le fonti, ma se dimenticassi qualcuno e lo notaste non esitate a segnalarlo. In particolare mi preme ricordare questo articolo: http://ubuntuforums.org/showthread.php?t=1606910. Anche se alla fine ho preso ben poco da esso, è stato fondamentale per avere una visione di insieme di cosa serviva a fare cosa.

Installazione di Ubuntu Server

Per questa mia impresa ho deciso di partire da una distribuzione Ubuntu Server 14.04.1 LTS (i386) “minimale” (cioè deselezionando tutti i componenti in fase di installazione, tranne OpenSSH server che è indispensabile per gestire la macchina da remoto) per poi aggiungere solo quello che mi serve.
Penso che la cosa non differisca molto su qualunque altra distro Debian based, ma intanto siete avvertiti.
L’utente principale è stato chiamato pxe.
Per velocità, tutti i comandi sono eseguiti dopo essere diventati superuser (in una Debian “pura” basterebbe fare il login come root):

Comandi:
pxe@pxeserver:~$ sudo -i

Terminata l’installazione mi sono assicurato che il nostro server abbia un IP fisso nella sottorete, nel mio caso 192.168.0.222. Per farlo ho editato il file /etc/network/interfaces in questo modo:

/etc/network/inferfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network
interface auto lo
iface lo inet loopback
# The primary network
interface auto eth0
iface eth0 inet static
address 192.168.0.222
netmask 255.255.255.0
gateway 192.168.0.254
dns-nameservers 192.168.0.254 8.8.8.8

Installazione di webmin per l’amministrazione remota (facoltativo)

Un pacchetto che trovo molto utile per la gestione remota dei server è Webmin: non è presente nei repository ma si installa con pochi comandi.

Comandi:
root@pxeserver:~# wget http://prdownloads.sourceforge.net/webadmin/webmin_1.700_all.deb
root@pxeserver:~# dpkg -i webmin_1.700_all.deb
root@pxeserver:~# apt-get -f install

L’interfaccia sarà ora disponibile all’indirizzo:

Indirizzo:
https://192.168.0.222:10000/

Creazione struttura delle cartelle

Liberamente tratto da: http://blogging.dragon.org.uk/howto-setup-a-pxeserver-with-dnsmasq/

Ora creiamo le directory che ospiteranno i nostri file; per mantenere un po’ di organizzazione le metteremo tutte in /srv:

Comandi:
root@pxeserver:~# mkdir /srv/pxeboot
root@pxeserver:~# mkdir /srv/www
root@pxeserver:~# mkdir /srv/install
root@pxeserver:~# mkdir /srv/iso

La cartella pxeboot che conterrà i file di avvio; la cartella www sarà la radice del server web e conterrà i file da passare con protocollo http; la cartella install i file che verranno passati con protocollo nfs; la cartella iso conterrà le immagini iso dei sistemi.

pxeboot: configurare syslinux e dnsmasq

Originale: http://danielboca.blogspot.it/2012/02/boot-linux-from-network-using-pxe-and.html?m=1
Adattamento a Ubuntu di UncleDan: http://www.danielelolli.it/2014/07/howto-boot-linux-from-network-using-pxe-and-dnsmasq-proxy-ubuntu-14-04/

Installiamo syslinux e copiamo i file necessari in quella che sarà la cartella di boot del server TFTP:

Comandi:
root@pxeserver:~# apt-get install syslinux root@pxeserver:~# cp /usr/lib/syslinux/pxelinux.0 /srv/pxeboot
root@pxeserver:~# cp /usr/lib/syslinux/menu.c32 /srv/pxeboot
root@pxeserver:~# mkdir /srv/pxeboot/pxelinux.cfg

Ora predisponiamo il nostro menu di base: ci occuperemo dei sottomenu mano a mano che procederemo nelle sezioni.
Fonte menu: https://help.ubuntu.com/community/PXEInstallMultiDistro

/srv/pxeboot/pxelinux.cfg/default
DEFAULT menu.c32
TIMEOUT 600
ONTIMEOUT BootLocal
MENU TITLE PXE MULTIBOOT SERVER
NOESCAPE 1
ALLOWOPTIONS 1
PROMPT 0
LABEL BootLocal
localboot 0
TEXT HELP
Boot to local hard disk
ENDTEXT
MENU BEGIN Ubuntu Install
MENU TITLE Ubuntu Install
LABEL Previous
MENU LABEL Previous Menu
TEXT HELP
Return to previous menu
ENDTEXT
MENU EXIT
MENU SEPARATOR
MENU INCLUDE 1-ubuntu-install.menu
MENU END
MENU BEGIN Ubuntu Live CD
MENU TITLE Ubuntu Live CD
LABEL Previous
MENU LABEL Previous Menu
TEXT HELP
Return to previous menu
ENDTEXT
MENU EXIT
MENU SEPARATOR
MENU INCLUDE 2-ubuntu-live-cd.menu
MENU END
MENU BEGIN CentOS
MENU TITLE CentOS
LABEL Previous
MENU LABEL Previous Menu
TEXT HELP
Return to previous menu
ENDTEXT
MENU EXIT
MENU SEPARATOR
MENU INCLUDE 3-centos.menu
MENU END
MENU BEGIN DOS Based
MENU TITLE DOS Based
LABEL Previous
MENU LABEL Previous Menu
TEXT HELP
Return to previous menu
ENDTEXT
MENU EXIT
MENU SEPARATOR
MENU INCLUDE 4-dos-based.menu
MENU END
MENU BEGIN Tools and Utilities
MENU TITLE Tools and Utilities
LABEL Previous
MENU LABEL Previous Menu
TEXT HELP
Return to previous menu
ENDTEXT
MENU EXIT
MENU SEPARATOR
MENU INCLUDE 5-tools-and-utilities.menu
MENU END

Installiamo dnsmasq:

Comandi:
root@pxeserver:~# apt-get install dnsmasq

Creiamo il file di configurazione per il servizio PXE /etc/dnsmasq.d/pxe.conf (l’IP 192.168.0.222 è quello che abbiamo assegnato al nostro server):

/etc/dnsmasq.d/pxe.conf
tftp-root=/srv/pxeboot
enable-tftp
dhcp-boot=pxelinux.0
dhcp-option=vendor:PXEClient,6,2b
dhcp-no-override
pxe-prompt=”Press F8 for boot menu”, 3
pxe-service=X86PC, “Boot from network”, pxelinux
pxe-service=X86PC, “Boot from local hard disk”, 0
dhcp-range=192.168.0.222,proxy

Ed assicuriamoci che nel file di configurazione /etc/dnsmasq.conf sia attiva la linea:

/etc/dnsmasq.conf
[…]
conf-dir=/etc/dnsmasq.d
[…]

Riavviamo il servizio dnsmasq:

Comandi:
sudo service dnsmasq restart

www: configurare lightppd

Liberamente tratto da: http://blogging.dragon.org.uk/howto-setup-a-pxeserver-with-dnsmasq/

Ho deciso di utilizzare lighttpd come server web; è un po’ più moderno e performante del tradizionale apache2 che quasi tutti i tutoriali usano. Ma purché ci passi i file in http qualsiasi server andrà bene! Ricordiamoci solo che nel resto della guida supporrò che i file da passare al boot (che fisicamente risiedono in /srv/install/) dovranno essere accessibili all’indirizzo:

Indirizzo:
https://192.168.0.222/srv/install/

Ho scelto questa codifica in modo che il percorso relativo dei file da passare sia srv/install/nomefile indipendentemente dal fatto che li passiamo con protocollo nfs (per le immagini un po’ più “vecchio stile” e per gli installatori) oppure http (per quelle più recenti e quasi i tutti i live CD).

Installiamo il server:
Comandi:
root@pxeserver:~# apt-get install lighttpd

E apportiamo due modifiche al file di configurazione (in grassetto):

/etc/lighttpd/lighttpd.conf
[…]
server.document-root = “/srv/www”
server.upload-dirs = ( “/var/cache/lighttpd/uploads” )
server.errorlog = “/var/log/lighttpd/error.log”
server.pid-file = “/var/run/lighttpd.pid”
server.username = “www-data”
server.groupname = “www-data”
server.port = 80

dir-listing.activate = “enable”
[…]

La prima modifica sposta la radice del server web, la seconda consente il directory listing se non è presente un file index.hml. Questa seconda modifica non è indispensabile, ma mi consentirà di usare il server per il anche download delle iso ed eventualmente per monitorare il contenuto delle varie cartelle.
Riavviamo il server web:

Comandi:
root@pxeserver:~# service lighttpd restart

Ora rendiamo simile la struttura del file system a quella locale:

Comandi:
root@pxeserver:~# mkdir /srv/www/srv
root@pxeserver:~# ln -s /srv/pxeboot /srv/www/srv/pxeboot
root@pxeserver:~# ln -s /srv/install /srv/www/srv/install
root@pxeserver:~# ln -s /srv/iso /srv/www/srv/iso

Ora creiamo un file di prova:

Comandi:
root@pxeserver:~# echo “installation files go here!”>/srv/install/test.txt

E proviamo a visualizzarlo con un browser e, cosa ancora più importante, a recuperarlo con wget:

Comandi:
root@pxeserver:~# wget http://192.168.0.222/srv/install/test.txt

Il risultato dovrebbe essere qualcosa del genere:

Output:
–2014-09-09 16:55:32–  http://192.168.0.222/srv/install/test.txt
Connessione a 192.168.0.222:80… connesso.
Richiesta HTTP inviata, in attesa di risposta… 200 OK
Lunghezza: 28 [text/plain]
Salvataggio in: “test.txt”

100%[===========================================>] 28          –.-K/s   in 0s

2014-09-09 16:55:32 (7,72 MB/s) – “test.txt” salvato [28/28]

Se tutto è ok, cancelliamo il file di prova:

Comandi:
root@pxeserver:~# rm /srv/install/test.txt

Infine creo per comodità un file che mi rimandi a webmin direttamente dalla cartella principale.

Comandi:
root@pxeserver:~# mkdir /srv/www/webmin

/srv/www/webmin/index.html
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<title>Login to Webmin</title>
<meta http-equiv=”refresh” content=”0;URL=’https://192.168.0.222:10000′” />
</head>
<body>
<p>You can find the Login to Webmin<br>
at <a href=”https://192.168.0.222:10000″>https://192.168.0.222:10000</a>.</p>
</body>
</html>

install: configurare nfs-kernel-server

Fonte: http://ubuntuforums.org/showthread.php?t=1606910

Installiamo ora il server snf che ci servità principalmente per i live CD.

Comandi:
apt-get install nfs-kernel-server

Modifichiamo il file degli export per rendere disponibile la cartella /srv/install anche con protocollo nfs a tutta la nostra sottorete.

/etc/exports
/srv/install      192.168.0.0/24(ro,async,no_root_squash,no_subtree_check)

Ed esportiamo il filesystem.

Comandi:
exportfs -a

Predisposizione dei sorgenti per installazioni Linux e altre utility

Ispirato da: http://posix.in-egypt.net/content/how-mount-iso-fstab

Ora predisporremo i file necessari alle installazioni vere e proprie.
Per quanto riguarda i sorgenti delle installazioni, avevo in un primo tempo pensato di caricare le immagini iso sul server, montarle e copiarne il contenuto nella cartella install per poi cancellarli. Riflettendo un attimo mi sono però reso conto che potevo montare le iso come file system in modo da averle sia per le installazioni PXE che per download per altri usi!
Per comodità seguiremo l’ordine del menu che abbiamo preimpostato.

1-Ubuntu (Install)

1-1-Ubuntu Server 14.04.1 LTS (i386)

Utilizzerò l’immagione ubuntu-14.04.1-server-i386.iso che scaricherò direttamente in /srv/iso per comodità.

Comandi:
root@pxeserver:~# cd /srv/iso
root@pxeserver:~# wget http://mirrors.mit.edu/ubuntu-releases/trusty/ubuntu-14.04.1-server-i386.iso

Anche copiare direttamente il file in tale posizione darà lo stesso risultato. Dalla release 14.04 Ubuntu, Kubuntu e molti altri “parenti” non rilasciano la versione alternate del supporto di installazione, ma solo i Lice CD. Lo stesso procedimento sarebbe applicabile a qualunque immagine di tipo alternate: ad esempio Lubuntu mantiene la versione alternate. Per le versioni a 64 bit basta sostituire i386 con amd64 in queste istruzioni.
Quando il file si trova nella giusta posizione dovremo editare il file /etc/fstab aggiungendo la riga sottostante e assicurandoci che ci sia una riga vuota alla fine del file (con molta attenzione, altrimenti si rischia che il sistema non si avvii più!).

/etc/fstab
[…]
/srv/iso/ubuntu-14.04.1-server-i386.iso /srv/install/ubuntu-14.04.1-server-i386/ iso9660 loop,ro,auto 0 0

Ora con questi due comandi:

Comandi:
root@pxeserver:~# mkdir /srv/install/ubuntu-14.04.1-server-i386
root@pxeserver:~# mount -a

avremo la iso visibile sia spacchettata (per il nostro boot PXE) all’indirizzo:

Indirizzo:
http://192.168.0.222/srv/install/ubuntu-14.04.1-server-i386/

che intera all’indirizzo:

Indirizzo:
http://192.168.0.222/iso/ubuntu-14.04-server-i386.iso

Ora creiamo link simbolici al kernel e all’immagine di avvio:

Comandi:
root@pxeserver:~# mkdir /srv/pxeboot/ubuntu-14.04.1-server-i386
root@pxeserver:~# ln -s /srv/install/ubuntu-14.04.1-server-i386/install/netboot/ubuntu-installer/i386/linux /srv/pxeboot/ubuntu-14.04.1-server-i386/linux
root@pxeserver:~# ln -s /srv/install/ubuntu-14.04.1-server-i386/install/netboot/ubuntu-installer/i386/initrd.gz /srv/pxeboot/ubuntu-14.04.1-server-i386/initrd.gz

Infine è il turno del file di menu.

Fonte PXE Ubuntu 14.04: http://www.unixmen.com/install-configure-pxe-server-ubuntu-14-04-lts/
/srv/pxeboot/1-ubuntu-install.menu
LABEL 1
MENU LABEL Ubuntu Server 14.04.1 (32-bit)
KERNEL ubuntu-14.04.1-server-i386/linux
APPEND initrd=ubuntu-14.04.1-server-i386/initrd.gz
TEXT HELP
Boot the Ubuntu Server 14.04.1 (32-bit) Installation Media
ENDTEXT

Ubuntu (Live CD)

(seguirà…)

DOS Based

Fonti: http://possiblelossofprecision.net/?p=491 e https://help.ubuntu.com/community/PXEInstallMultiDistro#DOS

Come esempio dei boot di tipo DOS (i buoni vecchi floppy) prenderemo il floppy di boot di FreeDOS, ma lo stesso procedimento si può applicare a qualunque immagine di floppy da 1,44MB, compresi quelli di programmi non-free (Ghost 2003, Emergency Boot Disk Window 98, ecc). Va da se che per utilizzarli è necessario possedere la relativa licenza. Creiamo la cartella e mettiamoci l’immagine del file.

Comandi:
root@pxeserver:~# cp /usr/lib/syslinux/memdisk /srv/pxeboot
root@pxeserver:~# mkdir /srv/pxeboot/4-dos-based
root@pxeserver:~# cd /srv/pxeboot/4-dos-based
root@pxeserver:~# wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/fdboot.img

Ora creiamo il sottomenu:

/srv/pxeboot/4-dos-based.menu
LABEL 1
MENU LABEL FreeDOS Floppy Disk
KERNEL memdisk
APPEND initrd=4-dos-based/fdboot.img
TEXT HELP
Boot FreeDOS 1.0
ENDTEXT

Tools and Utilities

(seguirà…)

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page

Installare Windows Seven (7) Professional 32 bit su Toshiba Qosmio G20

ATTENZIONE!
Nulla di ciò che leggerete è supportato da Microsoft, Toshiba o chiunque altro.
Tutto deriva *ESCLUSIVAMENTE* dall’esperienza del sottoscritto che peraltro
*DECLINA OGNI RESPONSABILITA’* in caso di danneggiamenti al vostro PC,
guerra termonucleare e qualunque altro cataclisma!

Inoltre tutti i marchi registrati citati appartengono ai legittimi proprietari.

Detto questo, cominciamo.

Sarà capitato anche a voi di voler aggiornare il vostro vecchio glorioso portatile.

Nel mio caso si tratta di un gloriosissimo Toshiba Qosmio G20 che, nonostante gli ormai 12 anni suonati, se la cava ancora egregiamente: chiaramente con qualche accorgimento (2GB RAM e una SSD da 120GB come disco principale) anche il buon vecchio Windows XP Media Center Edition se la cava egregiamente.

Si sa che però ogni tanto una bella “formattata” al buon vecchio Windows non fa mai male. Si da il caso però che il vecchio Qosmio abbia un lettore CD difettoso e quindi non si possa usare il lettore CD e che il BIOS non preveda (data l’età tutto sommato è normale) l’avvio tramite USB.

A questo punto perché non cogliere l’occasione ed installare qualcosa di più recente? Da questo articolo pareva che installare Vista non fosse così difficile e tra Vista e Seven tutto sommato le differenze sono poche (o almeno così ho pensato).

1 – Controller SATA (TOSHIBA RAID)

Il primo scoglio è stato il driver del controller SATA dei dischi: è molto particolare speciamente per un portatile (possibilità di striping e mirroring tra i due dischi, anche se il li uso “normalmente”) e ovviamente Toshiba non lo rilascia. Con enorme sorpresa mi rendo conto che… già l’avevo! Infatti il driver per Windows XP (estratto grazie al preziosissimo Driver Backup!) funziona anche per Seven 32 bit!

Avviata l’installazione sulla partizione dove già risiedeva XP, senza alcun download possibile, l’installazione è terminata con un paio di riavvii e senza particolari problemi. Ecco il risultato… niente male

Immagine1.png

Il punto interrogativo sul TOSHIBA Virtual Device SCSI Processor Drive può essere facilmente risolto fornendo la “seconda parte” del driver precedentemente estratto.
virtual

2 – Scheda Video NVIDIA GeForce Go 6600

Anche per la scheda video può (almeno in prima battuta) essere fornito il driver estratto dall’installazione XP: in realtà l’accelerazione hardware non mi pare attiva ma almeno ci consentirà di impostare la risoluzione video 1440×900. Poi vedremo se si può fare di meglio. (EDIT: effettivamente cercando in rete ho trovato un driver più recente e nettamente più performante).
video

3 – Scheda di rete wireless Intel PRO/Wireless 2200BG

In questo caso, anche se la Intel si premura di avvisarci che Seven non è supportato, il driver per Vista 32 bit funziona ragionevolmente bene (non riesco ancora ad avere una completa individuazione delle reti, ma procedendo con session ID e password la connessione funziona perfettamente.
wireless

4 – Toshiba PCI DVB-T/Analog Hybrid Tuner

Il Controller video multimediale altro non è che il sintonizzatore. Dato per impossibile che si potesse trovare un driver per Seven, ho tentato la carta del driver XP estratto con Driver Backup! Anche in questo caso il driver pare funzionare (o almeno consente di togliere la periferica dalla lista di quelle sconosciute, perché in realtà non ho nessun software in grado di sfruttarlo installato per ora.)
tuner

 

5 – Scheda audio SigmaTel High Definition Audio

Probabilmente anche in questo caso il driver XP estratto dalla precedente installazione era compatibile già di suo, comunque ho preferito riscaricarlo dal sito Toshiba (dove comunque viene indicato funzionante solo fini a XP).

audio

 6 – Lettore SD Card

In questo caso l’installazione del solo driver estratto dall’installazione non è stata sufficiente, ma ho dovuto installare anche l’utilità di formattazione SD Card (di per sé inutile in quanto formatta al massimo schede da 2GB!!!) per far funzionare il tutto, L’ho recuperato, per velocità, dal topic sull’installazione di Vista su Qosmio G20 a cui ho già fatto cenno.

card

7 – Bluetooth Stack

Ultimo, ma non meno importante viene il driver Bluetooth. Mi ha fatto un po’ impazzire perché non è immediato che un dispositivo con codice ACPI/TOS6205 sia lo stack Bluetooth!! Fortunatamente questo articolo mi ha “illuminato”. Una volta imparato di cosa si trattava, reperirlo sul sito Toshiba non è difficile anche perché i driver Bluetooth hanno un minisito dedicato e indipendente dal modello cercato.

Ora il mio mitico Toshiba Qosmio G20-129 è perfettamente funzionante con Windows Seven (7) Professional 32 bit!

Spero che questi appunti possano essere utili a qualcuno ed elenco qui di seguito (con possibilità di download) i driver utilizzati.

Riepilogo driver utilizzati:

 

Share on FacebookTweet about this on TwitterShare on LinkedInGoogle+Email to someonePrint this page