Visualizzazione post con etichetta filesystem. Mostra tutti i post
Visualizzazione post con etichetta filesystem. Mostra tutti i post

2 giugno 2009

Doccia bagnata

Nell'attesa che il mio pusher di titoli figherrimi si riprenda dal fantasticare su sequenze saffiche multiple sotto la doccia in quel di Sardegna, nell'attesa che, si spera, vengano forniti i dettagli di questa notizia e che tutti possano godere per quanto possibile... no, aspettate, non parafrasate. Quando ho scritto i "dettagli di questa notizia" intendevo QUESTA NOTIZIA, non quella notizia della doccia saffica.

Ne viene ovviamente che anche mentre parlavo di godere mi riferivo a "QUESTA NOTIZIA", non a "quella notizia", quindi nell'accezione del termine che vuol dire "beneficiare", non in quella più piacevole assai.

Cmq, nell'attesa e nella speranza di sapere i dettagli delle ottimizzazioni apportate, io vi suggerisco la mia personale:
  1. aprire il Terminale e digitare mount seguito da Invio
  2. leggere l'elenco dei punti di mount
  3. se nell'elenco dei punti di mount non vi è la directory /tmp
  4. aprire il file /etc/fstab con permessi di amministrazione
  5. inserire la riga: tmpfs /tmp tmpfs defaults 0 0
  6. riavviare il proprio netbook
Voilà: la directory /tmp è ora una manciata di kbyte nella memoria RAM invece che la stessa manciata di kbyte sul vostro hard disk SSD letti e scritti e letti e scritti e scritti e letti e letti e scritti con grande intensità. Magari quanto una doccia saffic.... BASTA!!!

3 maggio 2009

Cosa intendevi con «Discolabirinto»?

Vorremmo invitarvi

questa sera

in un posto

che noi amiamo chiamare

Discoteca Labirinto

Bianca e senza luci colorate. Dalla quale, ovviamente, non si possa uscire più. Che poi, "possa"... non è che uno che si trova in discolabirinto abbia la voglia di pensare di uscire. Si sta lì, si balla, si vive, si balla, si balla di nuovo, si vive ancora.

Io conto di restarci, con la giusta compagnia. Voi, se proprio siete così pavidi e cercate l'uscita, seguite il coniglio bianco.

30 marzo 2009

Tales of Suspence

Una gioviale richiesta per chi ha tempo, voglia e conoscenza per risolvere il quesito.

Dunque, un mio amico ha comprato una scheda SD e un pendrive USB perché... OK, lo ammetto, non ce la faccio a mentire. Sono io quel un mio amico di prima e questo è il mio lamentoso caso.

Ovviamente ho giocherellato al punto da incasinare la Ubuntu sul Dell Mini, una volta in modo assolutamente colpevole (non mi piaceva il nome dell'utente generico che avevo messo e volevo cambiarlo editando a manina /etc/passwd e /etc/group, ma la fretta è cattiva consigliera così ho lasciato utenti e gruppi incoerenti e non si poteva più fare il login) la seconda in modo assolutamente ignorante (nel senso che ignoro cosa sia successo, io non ho fatto nulla di nulla, solo aggiornato il bios, poi usato, poi spento, poi riacceso, poi messo in sospensione, poi fatto ripartire e infine hanno smesso di funzionare diversi componenti del sistema legati a DBus tra cui network manager).

Così, alla fine delle correzioni, mi ritrovo con una scheda SD che avevo inizialmente acquistato per provare a usarla come HOME (per salvaguardare la durata dell'harddisk), che ho provato a usare per copiarci sopra con dd(1) l'immagine di ripristino fornita da Dell¹ (tentativo infruttuoso) e che ora vorrei riprovare a usare come in origine. C'è però un "ma".

All'inizio, al primo inserimento della scheda SD, GNOME l'ha montata in automatico, ha mostrato l'icona della scheda SD e ha usato una etichetta consona per l'icona.

Poi ho "copiato" con dd l'immagine, che non è servito perché sembra che per il boot ci vogliono i pendrive.

Infine, con fdisk, ho eliminato e ricreato una partizione. Ottenendo
Disco /dev/mmcblk0: 4089 MB, 4089446400 byte
255 heads, 63 sectors/track, 497 cylinders
Units = cilindri of 16065 * 512 = 8225280 bytes
Disk identifier: 0x8ef631df

Dispositivo Boot Start End Blocks Id System
/dev/mmcblk0p1 1 497 3992121 b W95 FAT32
Perché, mi domando perché all'inserimento della scheda il sistema adesso monta correttamente mmcblk0p1 e tenta di montare (fallendo, ovvio) anche mmcblk0, con errore "can't read superblock"? È colpa del dd? Devo fare qualcosa che mi sfugge oltre a creare la partizione e formattarla? Grazie in anticipo.

UPDATE: me stupido, me aveva dimenticato di azzerare la tabella delle partizioni, tramite il comando interno "o" (crea una nuova tabella delle partizioni vuota) di fdisk. Ero stupidamente convinto che non fosse necessario...

[1] su Internet e poi ritirata, meno male che ci sono i torrent

21 luglio 2008

Revert Revision 14386

Vi siete lamentati.

Vi siete indignati.

Avete reclamato.

Avete protestato.

Avete mugolato.

Adesso potete anche fare il revert di tutto ciò e smetterla.

Io intanto vado a tradurre.

Update: come mostra l'immagine qui accanto, io ho finito di tradurre, almeno nella mia sandbox...

Per il commit su trunk aspettate che finisca di tradurre ben bene anche le nuove stringhe delle schede.

11 febbraio 2008

Secondo! - aggiornato - aggiornato di nuovo

Allora, novità del giorno, in ordine sparso:
  • il nostro buon pannello è ora GnomeVFS-free (TM) - vai GIO, vai!
  • update - il modulo gnome-desktop è ora ora GnomeVFS-free (TM) - continua GIO, continua!
  • il nostro buon pannello ora mostra una animazione - lo so, inutile, sento già i soliti rompiscatole dire che è copiata da macos - all'avvio della sessione - in pratica la stessa che si ha quando si imposta l'auto-hide, ma su tutti i pannelli automatica all'avvio... oddio, mi viene in mente ora... chissà che succede con un pannello fluttuante...
  • update - il nostro buon pannello ora mostra una simpatica animazione anche nel lanciare i lanciatori, ma solo se avete il composite abilitato - prende l'icona del lanciatore e ne fa una zoomata in trasparenza e dissolvenza... come descrizione fa pena, ma volete mettere con l'aspettare di vederlo dal vivo? update dell'update - ok, sono troppo buono...
  • Totem (backend GStreamer) riesce a riprodurre i DVD (e scusate se è poco dopo 3 o quattro anni dal passaggio alla versione 0.10 di Gstreamer) - addio VLC, non sono sicuro di rimpiangerti
  • Evolution non dovrebbe più rompere i gabbasizi per la mancanza di sincronizzazione tra sommario e casella di posta (anche questo dopo un eone di anni)
  • passerò la giornata di San Valentino con mia nonna in visita al ginecologo la mattina e al cardiologo il pomeriggio... non è proprio l'accoppiata cuore/sesso che speravo, ma mi sa che in 24 ore non trovo di meglio... beh, magari qualche donna da trivio...

12 luglio 2007

Sapevatelo!

Il vincitore del concorso tenutosi negli ultimi post ha scelto come argomento una questione un po' spinosa. Perché ogni tot avvii di GNU/Linux avviene il controllo del filesystem, quando il filesystem è di tipo EXT? Fortuna che tra i feed che seguo c'è la serie developerWorks di IBM :-)

Premetto subito che, se il filesystem scelto è ext3 (ossia la versione con journal) tale controllo si potrebbe disabilitare perché c'è già il journal. Però, prima, vorrei ricordare che il filesystem e la correttezza dei dati in esso contenuti è cosa abbastanza delicata. Talmente delicata che se in passato, come me, avete scelto di usare una certa distribuzione francese perché la trovavi nelle riviste con tutti i sui CD e programmi (sì, compreso gcc e pacchetti -devel) e perché faceva uso di un altro famoso e figo filesystem con journal prima che fosse largamente adottato e provato, allora, come me, potreste aver provato l'onta della perdita di parecchi dati - oddio, talvolta aiuta a ripartire da zero e a eliminare vecchie email di vecchi amori che non avreste mai il coraggio di eliminare motu propriu.

Il file system ext3 è stato progettato dal Dr. Stephen Tweedie, basandosi sulla struttura del filesystem ext2. L'unica, minuscola differenza tra i due è che ext3 supporta il journal.

Tale minuscola differenza in realtà comporta un comportamento estremamente diverso. Sebbene infatti la rappresentazione più semplice che si possa fare pensando a un filesytem è quelle di un luogo in cui memorizzare i dati, bisogna tenere presente che il file system deve anche consentire il recupero e la manipolazione di tali dati. Per tali finalità ogni filesystem (nel senso di modello astratto) prevede la definizione di una struttura dati interna definiti metadata. In definitiva quindi i metadata che un certo filesystem definisce e gestisce (e il modo in cui lo fa) caratterizza il filesystem stesso.

I metadata non sono visibili all'utente, né d'altronde potrebbero servirgli a qualche scopo. Sebbene spesso si usi lo stesso nome, non stiamo qui parlando di cose tipo il tag "artista" di un file MP3. L'unica cosa che deve interessare l'utente a proposito dei metadata è che questi si trovino in uno stato coerente, non corrotto. In caso contrario è impossibile accedere ai file e li si è persi in modo più o meno definitivo (vedi parte finale del secondo paragrafo).

In passato il compito di mantenere i metadati in uno stato coerente era affidato ai programmi unmount e fsck. Il primo veniva invocato durante l'arresto del sistema per tutti i filesytem montati e si occupa di riversare su disco tutte le operazioni ancora pendenti (mica penserete che tutto avviene in modo sincrono, vero?), comprese quindi le operazioni relative ai metadata. Il secondo veniva invocato durante l'avvio per controllare due cose: se il filesystem fosse in uno stato usabile (ossia se è stato smontato in modo pulito) e se i metadata fossero coerenti; entrambi i controlli erano (e sono ancora) effettuati prima di montare il filesystem, il secondo eseguito se il filesystem era in uno stato non usabile, cioè se non era stato usato umount.

Ora, come da lamentele del povero buon ORGA, il controllo dei metadata prende parecchio tempo, specie con filesystem grandi. Per risolvere il problema, i progettisti di filesystem hanno ben pensato di aggiungere una nuovo struttura di dati, il cosiddetto journal. Nel journal, prima che si applichino i cambiamenti ai metadata, vengono scritte le operazioni che descrivono tali cambiamenti. Basta. Punto. Finito qui. Aspettavate chissà quale grande pensata? Hanno solo aggiunto un "terzo livello", così da avere i data (la vostra roba), i metadata (dati relativi alla vostra roba) e meta-metadata (il journal, dati relativi ai dati relativi alla vostra roba).

Il trucco funziona perché, in caso di filesystem non coerente, fsck non deve leggere tutto il filesystem controllando tutti i metadata, ma si può limitare a leggere il journal e applicare le modifiche qui elencate (che sono operazioni non applicate ai metadata per renderli coerenti).

Perché quindi ogni TOT avvii ci si presenta quella fastidiosa scansione? Forse per la legge di Muphy, perché va bene che il journal è cosa buona, ma la paranoia è anche meglio. Per cui un bel controllo vecchia maniera di tutti i metadata una volta ogni tanto non guasta.

In effetti a tale proposito ci sono due scuole di pensiero. La prima è "c'è il journal, che ce ne frega di controllare i metadata". La seconda, io credo più corretta, dice "c'è il journal... ma allora in caso di problemi relativi all'unità, ai cavi, alla memoria o a bug del kernel potrei non accorgermi[1] che il mio filesystem è diventato corrotto". La conclusione della seconda scuola di pensiero è ciò che avete sotto gli occhi: meglio perdere tempo ogni tanto per un controllo approfondito che perdere dati.
Aggiornamento: non l'ho scritto esplicitamente nel precedente paragrafo, ma, se dopo un arresto non pulito ripristino solo il journal e non controllo tutti i metadata, non potrò sapere se ci sono metadata corrotti, derivanti non dalla non sincronizzazione del journal, ma dalle cause "esterne" prima elencate. È più chiaro, adesso?
Se siete coraggiosi, comunque, potete disabilitare tale controllo con il seguente comando (consultate la pagina di manuale di tune2fs per il significato):
sudo tune2fs -c 0 -i 0 /dev/PARTIZIONE
Se siete un po' meno coraggiosi, avete comprato hardware di prima qualità e il vi sembra che il controllo capiti troppo spesso, potete più rilassatamente aumentare i tempi da attendere tra un controllo e l'altro. Per prima controllate con dumpe2fs le attuali impostazioni:
sudo dumpe2fs -h /dev/PARTIZIONE
Nell'output del comando si sono la riga "Maximum mount count: xx" e "Check interval: yyy" : indicano che dopo xx mount o yyy giorni|settimane|mesi verrà eseguito il controllo completo. I valori predefiniti solo xx=20 mount e yyy=10 giorni. Per incrementare il numero di mount, usare:
sudo tune2fs -c 60 /dev/PARTIZIONE

Letture interessanti



[1] o accorgermi troppo tardi: stando al manuale di fsck se il kernel rileva un errore nel filesystem forza l'esecuzione di fsck al successivo riavvio, quando ormai potrebbe essere troppo tardi.