Tag Archives: Sistemi operativi

Raid mdadm con dischi >2TB

Eccoci dunque ad usare “disconi”…

Non si possono partizionare con gli strumenti classici (disk/cfdisk) dato che il partizionamento msdos non permette partizioni più grandi di 2TB.

Utilizziamo quindi gnu parted (gparted)

# parted -a optimal /dev/sdd
GNU Parted 2.3
Using /dev/sdd
Welcome to GNU Parted! Type 'help' to view a list of commands.

creiamo il partizionamento GPT e creiamo la partizione principale:

(parted) mklabel gpt
Warning: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No? yes
(parted) mkpart primary 1 -1
(parted) print
Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdc: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number Start End Size File system Name Flags
1 1049kB 3001GB 3001GB primary

(parted) align-check
alignment type(min/opt) [optimal]/minimal?
Partition number? 1
1 aligned

controllino:

(parted) print
Model: ATA WDC WD30EZRX-00M (scsi)
Disk /dev/sdc: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number Start End Size File system Name Flags
1 1049kB 3001GB 3001GB primary

(parted) quit

adesso facciamo la stessa cosa per il secondo disco e procediamo alla creazione del dispositivo MD:

# mdadm --create /dev/md1 --level=mirror --raid-devices=2 /dev/sdc1 missing
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid1 devices=2 ctime=Thu Sep 13 19:00:45 2012
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? yes
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.

creiamo il file system:

# mkfs.ext4 -m 0 -L SPACE /dev/md1
mke2fs 1.41.12 (17-May-2010)
Etichetta del filesystem=SPACE
Tipo SO: Linux
Dimensione blocco=4096 (log=2)
Dimensione frammento=4096 (log=2)
Stride=1 blocks, Stripe width=0 blocks
183148544 inode, 732565982 blocchi
0 blocchi (0.00%) riservati per l'utente root
Primo blocco dati=0
Maximum filesystem blocks=4294967296
22357 gruppi di blocchi
32768 blocchi per gruppo, 32768 frammenti per gruppo
8192 inode per gruppo
Backup del superblocco salvati nei blocchi:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544

Scrittura delle tavole degli inode: fatto
Creating journal (32768 blocks): fatto
Scrittura delle informazioni dei superblocchi e dell'accounting del filesystem: fatto

l’array è ancora degradato:

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdc1[0]
2930263928 blocks super 1.2 [2/1] [U_]

aggiungiamo il secondo disco all’array:

# mdadm --manage /dev/md1 --add /dev/sdd1
mdadm: added /dev/sdd1

e controlliamo lo stato del riallineamento:

# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdd1[2] sdc1[0]
2930263928 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.0% (2553536/2930263928) finish=496.8min speed=98212K/sec

 montiamo il filesystem e controlliamo:

# mount LABEL=SPACE /space/
# df -H /space
File system Dim. Usati Disp. Uso% Montato su
/dev/md1 3,0T 211M 3,0T 1% /space

 fatto.

Comments ( 0 )
administrator

Samba connesso ad un dominio – sincronizzazione password

Ho un server GNU/Debian 64 con samba connesso ad un dominio Windows. Capita che le password non siano più sincronizzate, nonstante abbia usato la direttiva:

machine password timeout = 0

nel file /etc/samba/smb.conf.

Per controllare la sincronizzazione delle password possiamo utilizzare questo script (/root/scripts/chkpassword):

#!/bin/bash
d=$(date)
echo "Controllo password: $d"
d=$(/opt/pbis/bin/lsa ad-get-machine password | grep NetBIOS | cut -d":" -f 2)
p=$(/opt/pbis/bin/lsa ad-get-machine password | grep Password | cut -d":" -f 2-)
p="${p#"${p%%[![:space:]]*}"}"
t=$(tdbtool /var/lib/samba/secrets.tdb dump | grep -A 2 SECRETS/MACHINE_PASSWORD\/ | tail -1 | cut -d" " -f 19- | tr -d ' ')
echo "Password nel controller di dominio: ["$p"]"
echo "Password nel database samba: ["$t"]"
echo " "

ed eventualmente metterlo in crontab per loggare la situazione settimanalmente:

00 6 * * 1 root /root/scripts/chkpassword >> /root/controllopwd.log

se la connessione al dominio è stata gestita tramite Power Broker allora possiamo riconnettere samba al dominio con (/root/scripts/resync):

#!/bin/bash
/opt/pbis/bin/samba-interop-install --install
/etc/init.d/samba restart

fatto

Comments ( 0 )
images

Copiare la propria chiave pubblica ssh su un server senza ssh-copy-id

Linux ha il comando ssh-copy-id che permette la copia della propia chiave pubblica ssh su un altro server, ma non tutte le varianti *nix hanno tale programma. Per copiare la propria chiave pubblica ssh su un server, da una macchina che non ha ssh-copy-id, ad esempio Mac OSX, di può ricorrere al seguente comando da lanciare nel terminale di OSX:

cat ~/.ssh/id_rsa.pub | ssh utente@dominio.estensione "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"
dove utente@dominio.estensione rappresenta l’utente ed il server su cui attivare l’accesso senza dover inserire la password ogni volta.

Per consentire l’accesso SSH all’utente root solo con il certificato (bloccando la connessione con password), bisogna modificare il file /etc/ssh/sshd_config ed in particolare impostare la direttiva:

PermitRootLogin without-password
riavviare poi il servizio con il classico:

/etc/init.d/ssh restart

Comments ( 0 )
administrator

Utente di dominio con diritti di Amministratore Locale

Quando si crea una rete con dominio Microsoft tutti gli utenti che utilizzano i client hanno i diritti del Gruppo Domain Users che è analogo al gruppo Users su Workgroup. Tale gruppo non può installare programmi e fare modifiche hardware, tipo installare una stampante o aggiornare il driver video.

In questo caso solo l’amministratore del dominio può effettuare modifiche rilevanti rendendo l’utilizzo del pc quasi impossibile per un utente comune.

Ma se vogliamo concedere all’utente il “pieno controllo” del proprio computer senza scollegarlo dal dominio che si fa?

Dare i diritti di Domain Admin ad un’utente può essere eccessivo perchè avrebbe la facoltà di cambiare le policy del server.

Andiamo sul computer dell’utente finale e avviamo un prompt dei comandi coi privilegi di amministratore del dominio:

Start -> Tutti i Programmi -> Accessori -> Prompt dei Comandi -> Tasto Destro
  -> su XP fai Esegui Come -> Utente Seguente – poi su Nome utente metti NOMEDOMINIO\Administrator e su Password la password poi OK
  -> su Windows Vista/7 Esegui come amministratore e scrivi semplicemente nome utente e password

A questo punto digitiamo i seguenti comandi:

net localgroup Administrators /add dominio\utente
gpupdate

dove su dominio va il nome del vostro dominio e su utente il nome utente loggato localmente sulla macchina che state usando. Al riavvio successivo del computer sarete in grado senza chiedere niente a nessuno di installare programmi e altro.

Comments ( 0 )
ramdisk-150x150

Ram Disk sul Mac

Con Ram Disk si indica una porzione di memoria RAM utilizzata come se fosse una normale unità a dischi.
Ovviamente, utilizzando memoria volatile, una volta che il Mac è stato riavviato o spento, tutti i dati che erano presenti nel disco virtuale saranno persi.

Ecco come ottenere un disco su Ram per il vostro Mac.

Aprite un terminale e digitate (o copiaincollate) queste istruzioni per una Ram Disk da 4GB:

diskutil erasevolume HFS+ “ramdisk” `hdiutil attach -nomount ram://8000000`

Se vogliamo modificare la dimensione della Ram Disk possiamo variare l’ultimo parametro.
2000000 per una Ram Disk da 1GB, 4000000 per una Ram Disk da 2GB.

Per rimuovere la Ram Disk è sufficiente espellerla come un comune disco hot-plug.

Comments ( 0 )
dennis_ritchie

Dennis Ritchie

Dennis MacAlistair Ritchie (Bronxville, 9 settembre 1941 – Murray Hill, 12 ottobre 2011) è stato un programmatore statunitense.
È stato uno dei pionieri dell’informatica moderna, importante per la sua influenza su B, BCPL, C, Multics e UNIX.

Non sapete chi sia? E’ stato il padre del linguaggio “C”, senza di lui i sistemi operativi (unix, Windows, Apple ecc.), i giochi, le applicazioni, le app su android e osx non sarebbero esistiti.

Possiamo dire che sia stato il padre dell’informatica come la conosciamo adesso.

Tutti gli sviluppatori gli tributano un minuto di silenzio, onore al genio.

La sua scheda su wikipedia.

Comments ( 0 )
hdd25

Dump di un disco via rete

Facile ricetta, 1 stella di difficoltà.

se vogliamo effettuare una copia di un disco locale su una macchina remota:

dd if=/dev/sdX | ssh host.destinazione.com dd of=file.dd

se vogliamo anche comprimere:

dd if=/dev/sdX | gzip -1 | ssh host.destinazione.com gzip -dc | dd of=file.dd

🙂

Comments ( 0 )

Debian e qemu/libvirt per la virtualizzazione

Appunti sulla virtualizzazione con debian/64 e qemu/libvirt

Si parte da un’installazione classica (e leggerissima) di GNU/Debian 64 bit.

Il partizionamento di base prevede una partizione di boot da 350MB circa e il resto del disco (o del sottosistema MD) come volume LVM.
La partizione di root è 7,4GB
Lo swap è almeno il doppio della ram.

Se non lo avete ancora fatto, installate le bridge utils:

apt-get install bridge-utils

Per la rete si crea un bridge su cui si connette poi la ethernet fisica (eth0 in questo caso) e su cui si connettono poi le ethernet delle VM:

/etc/network/interfaces
auto lo
iface lo inet loopback
# The primary network interface
auto br0
iface br0 inet static
  address 192.168.1.1
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.254
  bridge_ports lan
  bridge_stp on
  bridge_maxwait 0
  bridge_fd 0

Per installare tutto basta:

apt-get install qemu-kvm libvirt-bin virtinst

Per avviare l’installazione di una vm (in questo caso chiamata “monit”) dobbiamo semplicemente creare un disco per la vm:

lvcreate -L8G -n vmdisk-monit vol
oppure
lvcreate --size 4G --name vm-disk vol

A questo punto, avendo creato il disco, possiamo creare la VM:

virt-install -d --name=monit --ram 512 --vnc :0
--disk path=/dev/vol/vmdisk-monit --network=bridge:br0
--os-type=linux --cdrom /ISO/debian-6.0.3-amd64-CD-1.iso

a questo punto per connettervi con VNC alla console dal vostro pc/client potete:

ssh root@host-server -L 5900:127.0.0.1:5900
vnc localhost:0

alcuni comandi utili per la gestione delle vm:

virsh start monit
virsh setvcpus monit 1

se ci sono problemi con il disco appena creato (non riconosciuto):

virsh pool-refresh vol

Per riferimento esistono diversi sistemi per la gestione:

http://archipelproject.org/
http://pve.proxmox.com/

🙂

Comments ( 0 )

INPS UniEMens errore 417

La procedura UniEMens, dietro ad un proxy trasparente basato su squid, potrebbe fallire con errore HTTP 417: Expectation Failed.

Questo errore avviene quando la procedura invia un header che squid (sia versione 2.7 che 3.1) non riesce a gestire correttamente.

La prima soluzione è quella di utilizzare iptables per nattare, senza passare attraverso il proxy, la destinazione delle richieste (www.inps.it: 94.86.41.16):

iptables -A INPUT -p ALL --destination 94.86.41.16 -j ACCEPT

Questa prima soluzione, sinceramente, non è molto carina. Si può operare, invece, direttamente sulla configurazione di squid.

E’ sufficiente inserire la direttiva:

ignore_expect_100 on

nel file di configurazione di squid (solitamente /etc/squid/squid.conf).

Nel caso in cui il vostro firewall sia un ipFire potete aggiungere la direttiva nel file /var/ipfire/proxy/advanced/acls/include.acl e poi riavviare il proxy dall’interfaccia web.

🙂

Comments ( 0 )

Permessi cartelle e file

E’ il più banale dei problemi eppure tutte le volte ci perdo il capo.

Cambiare in una cartella, in modo ricorsivo, tutti i diritti di file e cartelle impostando, per esempio, 0660 per i file (r w – r w – – – ) e 0770 per le cartelle (r w x r w x – – ).

facciamo un bel:

chmod -R 0660 *
find . -type d -exec chmod 0770 '{}' \;

ed è tutto fatto!

🙂

Comments ( 0 )