martedì 7 gennaio 2020

Reinstallazione grub uefi dopo ripristino windows 10

Spesso capita di aver Linux in dual boot con Windows e molte volte capita di dover ripristinare Windows a causa di problemi. A quel punto le cose si complicano perchè una volta ripristinato Windows, quest'ultimo elimina la possibilità di avviare Linux andando a prendere il sopravvento sul sistema di avvio, mbr o uefi che sia.
La seguente guida ha lo scopo di ripristinare grub in modo da poter permettere l'avvio di entrambi i sistemi operativi, è stata testata su Ubuntu 18.04 ma dovrebbe funzionare su quasi tutti i sistemi Linux (con qualche piccola aggiustatina).
Con una Ubuntu 18.04 live apriamo il terminale e diventiamo amministratori:
sudo -s

Montiamo le partizioni di root (nel mio caso sda8) e efi (nel mio caso sda1):
mount /dev/sda8 /mnt && mount /dev/sda1 /mnt/boot/efi

Montiamo le altre directory di sistema:
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /run /mnt/run
mount --bind /proc /mnt/proc
mount --bind /dev/pts /mnt/dev/pts
mount --bind /sys/firmware /mnt/sys/firmware

Entriamo nell'ambiente di chroot:
chroot /mnt

Ripristiniamo grub:
update-grub
grub-install

Usciamo da chroot e riavviamo:
exit
reboot

Dopo il riavvio a me è successo che partisse solo Linux, senza la presentazione del menu di grub. La cosa è strana perchè avevo già dato precedentemente il comando "update-grub". In ogni caso se dovesse capitare anche a voi, nel mio caso si è risolto utilizzando nuovamente il comando "update-grub".

domenica 3 novembre 2019

Arch linux installazione semplice con ZEN installer

Ho iniziato il mio percorso in linux parecchi anni fa con distribuzioni come Mandriva, passando per Ubuntu e successivamente Debian (che installo ancora sui server), ma per l'utilizzo casalingo secondo il mio modesto parere non c'è nulla di meglio di Arch linux. Il motivo è semplice, software sempre aggiornatissimo e disponibilità di qualsiasi pacchetto esistente utilizzando anche il repository AUR (della comunità).
Sul mio notebook l'ho installato nel 2013 su un hard disk tradizionale successivamente sostituito da ssd trasferendo l'installazione originale e ottimizzandola per ssd. Ogni tre - quattro mesi aggiorno il sistema completo e solo occasionalmente ho avuto necessità di mettere mano a qualche file di configurazione per sistemare eventuali problemini nati dopo l'aggiornamento. In questi anni c'è stato anche il passaggio da init a systemd, cosa non da poco visto che questo comporta la modifica del sistema di avvio dei servizi, ma arch ha aggiornato il tutto modificando i file di configurazione e ricreando gli script di avvio. Tutto questo senza avermi mai creato problemi tali da dover formattare e reinstallare tutto da capo. Sembrerà strano ma queste cose mi affascinano. Ancora più affascinante è il fatto che mentre in un terminale stavo aggiornando il sistema completo, con vlc mi stavo comodamente guardando un film.
Ora, dopo aver lodato questa distribuzione, vorrei porre alla vostra attenzione l'installer grafico creato appositamente per arch linux in quanto una delle "pecche" è proprio l'installazione che richiede un pò di dimestichezza con i sistemi linux.
L'installazione standard è ben supportata dalle guide ufficiali e permette d'imparare tantissimo, ma per un utente alle prime armi che non sa nemmeno cos'è un terminale o uno script può essere utile aver un sistema alternativo più semplice per riuscire nell'intento di provare arch linux.

ZEN installer è scaricabile da https://sourceforge.net/projects/revenge-installer/.

Come riporta la descrizione sul sito, ZEN installer fornisce un'interfaccia grafica per l'installazione di arch linux. Tramite questa è possibile scegliere l'ambiente desktop tra cui Gnome, KDE, XFCE ed altri.

N.B. Personalmente non l'ho provato, sono giunto a questo progetto cercando informazioni su una modalità semplice per installare arch linux ma appena avrò un pò di tempo ci metterò mano e se avrò altre informazioni utili aggiornerò questo post includendo quanto appreso dalla prova.

giovedì 31 ottobre 2019

nmap

Nmap è un'utilità gratuita e open source per il rilevamento e il controllo della sicurezza della rete ampiamente utilizzata nella comunità degli utenti Linux in quanto è semplice da usare ma molto potente. Nmap funziona inviando pacchetti di dati su una destinazione specifica (tramite IP) e interpretando i pacchetti in entrata per determinare quali post sono aperti / chiusi, quali servizi sono in esecuzione sul sistema scansionato, se i firewall o i filtri sono impostati e abilitati, e infine quale sistema operativo è in esecuzione. Come avrete capito nmap vi permette di recuperare diversi tipi di informazioni sui dispositivi connessi alla rete, per questo non voglio incoraggiare l'uso di nmap a scopi dannosi.

Passiamo ai comandi...
Per installare nmap cercate il pacchetto "nmap" con il gestore dei pacchetti della vostra distribuzione. Nel caso di debian e derivate:
apt-get install nmap

Per utilizzare nmap bisogna essere amministratori, quindi nel caso di ubuntu:
sudo -l

Consideriamo 192.168.1.1 come l'indirizzo ip di destinazione sul quale vogliamo avere le informazioni. E' possibile sostituire tale indirizzo con qualsiasi altro, anche un sito web.

Un comando di base che può essere utilizzato per verificare rapidamente se un sito Web è attivo senza creare alcuna interazione "registrabile" con il server di destinazione:
nmap -sS 192.168.1.1

Quando si desidera verificare le porte aperte di una destinazione:
nmap -vv 192.168.1.1

Il seguente comando indica a nmap di provare a recuperare quale sistema operativo viene eseguito sul sistema di destinazione. Se tutte le porte sono filtrate i risultati potrebbero non essere affidabili. I numeri percentuali danno l'idea di incertezza:
nmap -O --osscan-guess 192.168.1.1

Per verificare i servizi attivi sulla destinazione:
nmap -sV 192.168.1.1

Ora vediamo come fare una scansione su tutta la nostra rete per trovare tutti i dispositivi connessi (il comando effettua la ricerca di tutti gli indirizzi che iniziano con 192.168.1):
nmap 192.168.1.0/24

Se vogliamo estendere la ricerca a tutte le sottoreti che iniziano con 192.168:
nmap 192.168.0.0/16

Se volete fare una scansione completa della rete 192 (attenzione perchè impiegherà parecchio tempo):
nmap 192.0.0.0/8

Per maggiori informazioni ed approfondimenti consultare la guida di riferimento:
https://nmap.org/book/man.html

lunedì 28 ottobre 2019

Giocare con dischi e partizioni

Dopo parecchio tempo che non scrivo più niente, mi devo dedicare un attimo a questo argomento, perchè ogni volta mi trovo a dover fare ricerche su comandi veramente utili.
In linux ci sono tanti comandi per gestire hard disk e partizioni, ma non li elencherò in questo post, mi limiterò invece a dare un elenco di esempi da utilizzare direttamente per essere subito operativi.

n.b. Non mi ritengo responsabile se utilizzando i seguenti comandi cancellerete dei dati, partizioni o interi hard disk... prima di "giocare" è sempre bene fare un backup.
Tutti i comandi vanno dati con i permessi di root.
Per diventare root in ubuntu:
sudo -s

In tutti gli esempi considero "sda" come sorgente (hard disk vecchio) ed "sdb" come destinazione (hard disk nuovo)

Elencare le partizioni di tutti gli hard disk:
fdisk -l

Elencare le partizioni su un hard disk GPT:
sgdisk -p /dev/sda

Effettuare qualsiasi operazione su partizioni MBR (attenzione perchè è possibile eliminare le partizioni e di conseguenza i file contenuti):
fdisk /dev/sda

Effettuare qualsiasi operazione su partizioni GPT (attenzione perchè è possibile eliminare le partizioni e di conseguenza i file contenuti):
gdisk /dev/sda

Conversione di un hard disk MBR in GPT:
sgdisk -g /dev/sda

Conversione di un hard disk GPT in MBR:
sgdisk -m /dev/sda

Clonare MBR da hard disk a hard disk:
dd if=/dev/sda of=/dev/sdb bs=512 count=1

Clonare solo la parte del boot loader contenuta nel MBR:
dd if=/dev/sda of=/dev/sdb bs=446 count=1

Clonare solo la parte contenente la tabella delle partizioni nel MBR:
dd if=/dev/sda of=/dev/sdb bs=1 skip=446 count=64

Copiare la tabella delle partizioni GPT:
sgdisk -R=/dev/sdb /dev/sda

Clonare boot loader e tabella prima partizione nel MBR:
dd if=/dev/sda of=/dev/sdb bs=462 count=1

Clonare la prima partizione:
dd if=/dev/sda1 of=/dev/sdb1

Clonare l'intero hard disk, compreso il MBR (in questo caso il secondo hard disk deve avere almeno la stessa capacità del primo):
dd if=/dev/sda of=/dev/sdb

Nel caso di clonazioni in presenza di hard disk danneggiati può essere utile utilizzare ddrescue al posto di dd:
ddrescue if=/dev/sda of=/dev/sdb

giovedì 11 ottobre 2012

Utilizzare una stampante incompatibile con linux su linux

Mi sono imbattuto per necessità in questo problema e grazie a varie ricerche su internet, guide e lavoro manuale di programmazione, sono riuscito a risolvere il problema. Come sempre lo rendo disponibile a chi ne avesse bisogno oltre che per comodità personale.
Nel mio caso ho utilizzato una distribuzione Debian wheezy, ma sicuramente è adattabile a tante altre.
Per prima cosa elenco l'occorrente hardware:
- un pc con linux
- un pc con windows (o come ho fatto io, una macchina virtuale)
- una stampante qualsiasi

Per quanto riguarda il software su windows:
- Ghostscript http://www.ghostscript.com/download/gsdnld.html
- GSview (io ho usato la 4.9) http://pages.cs.wisc.edu/~ghost/gsview/index.htm
- Python (io ho usato la 2.7.3) http://www.python.org/download/
- Python Win32 Extensions (pywin32) http://sourceforge.net/projects/pywin32/files/pywin32/
- script dirwatch.py (modificato da me) https://docs.google.com/open?id=0B1AvO3-cFzRKbGxqOF9laGlpbFk

Software su linux:
- CUPS installato e funzionante correttamente
- SAMBA client (smbclient) installato e funzionante correttamente
- Adobe distiller PPD http://www.adobe.com/support/downloads/detail.jsp?hexID=273e
- script winp http://justin.yackoski.name/winp/winp (o se non funziona il link https://docs.google.com/open?id=0B1AvO3-cFzRKNlRrUDYyYTZ0aEk)

Procedimento:
Facciamo con virtualbox una nuova macchina virtuale ed installiamo windows (io ho utilizzato xp), diamo come nome al pc "windows-print". Alla fine del procedimento dovremmo avere una macchina virtuale con xp perfettamente funzionante compreso l'accesso alle porte usb. Se ricevete errori riguardo l'accesso alle porte usb, probabilmente dovrete aggiungere il vostro utente al gruppo vboxuser in questo modo, sostituendo il vostro nome utente al posto di username:

usermod -a -G vboxusers username

Fatto ciò, possiamo installare i driver della stampante all'interno della macchina virtuale e collegarla cliccando sulla spunta che trovate nelle impostazioni della macchina virtuale. Se non la è già, rendete la stampante predefinita. Provate a lanciare una stampa da windows e se funziona andiamo oltre, altrimenti rivedete l'installazione della stampante e cercate il problema.
Create l'account "print" con password "print" (io l'ho reso amministratore, non ho provato se funziona anche come account limitato) e fate in modo di far avviare windows con l'accesso automatico all'utenza "print", senza richiesta della password.
Per fare ciò, eseguiamo "control userpasswords2", togliamo la spunta da "Per utilizzare questo computer è necessario che l'utente immetta il nome e la password", clicchiamo su applica e digitiamo il nome utente "print" e la password "print" nella finestra che appare.

Iniziamo con le installazioni software su windows... Installiamo Ghostscript e GSview e verifichiamo che funzioni. Installiamo Python e le win32 extensions verificando che a fine installazione non ci siano errori. A me è successo che le win32 extensions mi dessero un errore alla fine dell'installazione, ho disinstallato, riavviato e installato nuovamente ed è andato a posto (non ho capito il motivo, ma scrivo ciò che mi è successo direttamente).
Creiamo le directory C:\script e C:\temp\spool e condividete quest'ultima. I nomi delle directory possono essere cambiati, ma in quel caso dovrete modificare il programmino python che metterete all'interno di C:\script per far in modo che controlli un'altro percorso. Mettete il file dirwatch.py in C:\script e creiamo un collegamento in esecuzione automatica per l'utente "print".
Il programma dirwatch.py non fa altro che controllare in continuo C:\temp\spool per intercettare modifiche ai file e quando si "accorge" che un file è stato rinominato lancia il programma gsview con alcune opzioni per effettuare la stampa sulla stampante locale predefinita.
Su windows dovremmo aver finito, riavviamo e verifichiamo che in automatico entra nell'utenza print e si apra un terminale con il programma dirwatch.py in ascolto. Se così non fosse ripercorriamo i passi e cerchiamo l'errore prima di procedere oltre.

Passiamo a linux...
Facciamo un test di connessione di rete con la macchina virtuale:

smbclient //windows-print/spool -U print

Se non funziona trovate il problema (magari avete qualche configurazione di smb.conf da sistemare o il firewall di windows attivo) e solo quando riuscirete ad accede alla directory remota potrete continuare. Provate a fare una copia di un file all'interno della directory remota per una seconda verifica di funzionamento, se non avete problemi di permessi o altro potete continuare.
Successivamente dobbiamo estrarre il file ADIST5.PPD da adobe.zip e rinominarlo con caratteri piccoli in adist5.ppd. Spostiamo questo file in /usr/share/cups/model/
Spostiamo lo script "winp" in /usr/lib/cups/backend/ diamogli i permessi di esecuzione e cambiamo il grupp con:

chmod -x /usr/lib/cups/backend/winp
chgrp lp /var/spool/winp

Creiamo la directory /var/spool/winp e cambiamo i permessi con:

mkdir /var/spool/winp
chmod g+w /var/spool/winp

Riavviamo CUPS con:

service cups restart

Siamo quasi alla fine.. Configuriamo una nuova stampante che utilizzerà come ppd il file adist5.ppd copiato in precedenza:

lpadmin -p windows_printer -E -v winp://windows_pc/spool -m adist5.ppd

Ora dovrebbe essere tutto ok e lanciando una stampa da linux verrà creato un file in /var/spool/winp, traferito in //windows-print/spool, rinominato e a quel punto stampato tramite il software dirwatch.py... Per qualsiasi problema da linux è possibile vedere i log che trovate in /var/log/cups/ e /tmp/winp.log

Fonte: http://justin.yackoski.name/winp/

lunedì 1 ottobre 2012

Linux e open source nella P.A.


Finalmente anche l'Italia si sta muovendo nella direzione giusta e lo scorso agosto è diventato legge... Sto parlando di Linux e l'open source in genere nella pubblica amministrazione. E' una notizia strepitosa non solo perchè sono un fan di Linux e mi piacerebbe vederlo in ogni computer, soprattutto perchè i soldi spesi per l'informatica ovviamente arrivano dalle nostre tasche, quindi più risparmiano e meglio è!
Poi c'è la questione filosofica che non è da poco. Vogliamo combattere la pirateria, ma quando scarichiamo un file di pubblico dominio richiede office oppure internet explorer... Insomma il file è pubblico ma per visionarlo dovrei spendere soldi! Mi sembra un pò un controsenso. Ci vorranno anni per effettuare il passaggio, ma almeno si vede un inizio!

L'articolo 68 del Codice dell'Amministrazione Digitale (D.Lgs. 82/2005) offre le linee guida per le procedure di acquisizione del software da parte della Pubblica amministrazione. Queste le novità introdotte nel primo comma:

1. Le pubbliche amministrazioni acquisiscono programmi informatici o parti di essi a seguito di una valutazione comparativa di tipo tecnico ed economico tra le seguenti soluzioni disponibili sul mercato:
a) software sviluppato per conto della pubblica amministrazione;
b) riutilizzo di software o parti di esso sviluppati per conto della pubblica amministrazione;
c) software libero o a codice sorgente aperto;
d) software combinazione delle precedenti soluzioni.

La normativa parla chiaro: se in precedenza non vi erano criteri di priorità fra le soluzioni da scegliere, adesso la precedenza è data al software open source, a meno che questo, per un preciso motivo da dimostrare, non sia adatto allo scopo oppure di livello avanzato nell’utilizzo dello stesso.  Quindi ampio spazio all'open source.

Quindi tanti auguri a Linux e all'open source anche in Italia!

venerdì 7 ottobre 2011

Crash di nautilus in ubuntu 11.10

Mi sta capitando da qualche giorno e finalmente ho risolto un problemino al quanto noioso su Ubuntu 11.10 (non ancora rilasciata ufficialmente) con gnome 3 (non so se capita anche su unity)...
Praticamente ogni directory che si prova ad aprire manda in crash nautilus che si chiude immediatamente. Soluzione:

sudo apt-get remove ubuntuone-client-gnome