Newsgroup: it.comp.lang.c
Titolo: Scrivere su disco senza filesystem...

 'The Krazy One'   ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** Funny off-topic messages are always on-topic. **---

posso utilizzare?
Non ti serve, nel tuo caso i dati vengono scritti o non vengono scritti.
-- 
ciao, | [Per rispondere togli "toglimi" dal mio indirizzo.]    | Be happy.
Marco | What was you username again? <clickety clickety click> | Be root.
      | Linux: be your own luser!

Potresti provare implementando un sistema R.A.I.D. redundant array of 
inexpensive disks.Cmq  un filesystem è indispensabile a meno che non 
memorizzi i dati in un chip.:-)
Ciao 

 centinaio di byte al massimo, e rileggerli, e riscriverli spesso,
[...]
int fsync(int fd);
man 2 fsync
oppure
int fdatasync(int fd);
man 2 fdatasync
quando la funzione ritorna i dati sono stati scritti fisicamente sul disco,
fd è il file descriptor restituito da fileno(FILE *stream)
PS
non vedo perché non dovresti usare un filesystem...
-- 
----------------------------------------------------------------------------
| °       Claudio Della Ciana        | claudiodellaciana(at)
email.com
    ° |
| °      >-------------------<       | cianoz(at)
stud.unipg.it
           ° |
----------------------------------------------------------------------------

 memorizzi i dati in un chip.:-)
Non è vero. Basta, per esempio, scrivere direttamente nei settori
fisici.
EMG

memorizzi i dati in un chip.:-)
Figuriamoci, se voglio posso scrivere senza problemi sulla partizione o
anche sul disco non partizionato.


 posso utilizzare?
Il rischio maggiore non e' quello di non scrivere i dati sul disco (per quello
basta un semplice fsync), ma quello di rovinare il file system con relativa
"perdita" dei tuoi files.
Esiste almeno un progetto per fare un file system transazionale per Linux, nel
qual caso e' sempre garantita la consistenza del file system e saresti a posto.
In ogni caso, non conosco l'importanza di quei dati, ma, la probabilita' di un
danneggiamento *grave* del file system e' gia' bassa, la probabilita' di un
power-failure e' gia' bassa (e puoi ridurla di molto con un buon UPS), con una
decente politica di backup sei molto tranquillo.
Tieni presente che se la corrente se ne va prima o mentre stai scrivendo i dati,
c'e' poco da fare, quei dati andranno persi, a meno che il "qualcosa" che te li
manda non abbia un meccanismo con il quale tu gli confermi la corretta ricezione
e memorizzazione.
Ciao.
-- 
 Daniele
-------------------------------------------------------------------------------
 Daniele Orlandi - Utility Line Italia - 
http://www.orlandi.com
 Via Mezzera 29/A - 20030 - Seveso (MI) - Italy
-------------------------------------------------------------------------------

 fisici.
Si,ma da qlc parte dovra' pur aver un "sistemino"operativo.
Ciao! 

 anche sul disco non partizionato.
Quindi tu avvi un pc con un paio di hd vergini dopo il p.o.s.t. del bios 
cosa fai,o meglio come fai a scrivere senza un sistema di accesso alle 
periferiche dell'intera macchina?Dovresti perlomeno accedere alle rotine 
del bios per controllare la macchina.Poteresti fare un programmino loader 
che carica il tuo programma di scritura per disco su un disco vergine??
Spiega che è interessante.
Ciao
 

Ciao
Anche se inutile è possibile riscriversi il Master Boot Sector su misura che
lancia un programma il quale può accedere alle routine del bios e ...
Carlini Alessio

periferiche dell'intera macchina?Dovresti perlomeno accedere alle rotine 
Non ho mai scritto di non volere usare il sistema operativo.
Ma comunque non e` troppo difficile leggere e scrivere dei settori a
colpi di in e out.


 'The Krazy One'   ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** Stop talking! I'm out of aspirin! **---

 che carica il tuo programma di scritura per disco su un disco vergine??
Stiamo parlando di un programma che gira sotto Linux.


 'The Krazy One'   ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** Death: to stop sinning suddenly. **---

 che carica il tuo programma di scritura per disco su un disco vergine??
Si puo' fare e non importa neanche usare il BIOS, pero' non e' necessario
complicarsi la vita.
Scrivere su un disco senza filesystem, non vuol dire che tutti i dischi 
devono essere senza filesystem e che non si puo' usare il S.O.
Sotto linux basta:
  dd if=file-da-copiare of=/dev/fd0  (o hd?, ...)
e si puo' scrivere direttamente su qualsiasi disco o partizione (se si
hanno i diritti).
	Mauro

 Si,ma da qlc parte dovra' pur aver un "sistemino"operativo.
Basta averlo su un altro disco.
	Mauro

 lancia un programma il quale puņ accedere alle routine del bios e ...
Infatti io non ho mai detto il contrario.Dico solo che ci vuole "da qlc 
parte"un sistema d'avvioo meglio direi un sistemino operativo.

 colpi di in e out.
Si,ma prima dovrai crerli questi settori se il disco è vergine a meno che 
non sia pre-formattato.

 Stiamo parlando di un programma che gira sotto Linux.
Io di Linux conosco le basi,la procedura d'installazione i comanfi più 
frequentemente utilizzati,il filesystem,e poco più.INverita' ho tutte le 
versioni di Linux a partire dalla redhat 1.x e anche le 
debian,slackware,susy;ma dopo averne provate parecchie ho deciso di non 
utilizzarlo più perchè,purtroppo,ho trovato parecchi bug soprattutto nei 
programmi dell'Xwindows,almeno fino alla redhat 5.1.Inoltre non riesco a 
trovare software applicativo tipo un Word per Linux,ecc.e quello che 
trovavo doveva essere scaricato dalla rete,ma spesso si trattava di 
grossi "pacchi"!E la stampante non veniva utilizzata al pieno delle sue 
capacita';stampaav come una comune stampante ad aghi.Evcentuali 
annotazioni saranno benvenute. 

 Non vedo perche'.
Come lo avvii il sistema?
Cmq ho risposto nei post precedenti.

 Basta averlo su un altro disco.
:-)

 hanno i diritti).
Si,ma prima il disco lo devi preparare,formattare,e poi il kernel di 
Linux deve aver bootato altrimenti nulla.
Ciao.

 Si,ma prima il disco lo devi preparare,formattare,e poi il kernel di 
no, non lo devi formattare... dd scrive sulla destinazione "grezza"
--------
Ciao,
Alvaro.
e-mail: a"punto"deamicis"chioccioletta"ermes"punto"it
--------

 A me non sembra che il raid sia inutile.
Il RAID con dischi ridondanti e' inutile in questa situazione perche' tutti i
livelli suppongono di dover fronteggiare al massimo la morte di uno (o due per
il raid 10), dischi contemporaneamente. Qui il problema e' cosa succede se viene
a mancare la corrente, e il RAID purtroppo non puo' nulla contro i black-outs.
Ciao!


 sono corrotti o meno, sarebbe grande.
Allora, senza scomodare file systems transazionali e compagnia bella, ecco come
lo implementerei io:
Partizione di root montata su un disco flash in read-only: Poco consumo,
insensibilita' agli shocks, praticamente nessun problema di compatibilita'
etc...
Una piccola partizione del disco flash riservato alla scrittura della
configurazione, in questo caso e' giustificato andare a scrivere in raw mode.
Due (o piu') settori [1], entrambi con le stesse informazioni, e due flags di
commit uno per settore. Prima della scrittura, prendi il settore piu' vecchio,
azzeri il commit e inizi a scrivere, fai un fsync, metti il commit a 1 e fai un
altro fsync. In questo modo sai che se il flag di commit e' a 1, allora i dati
contenuti nel settore sono corretti e li leggi (dal settore piu' nuovo),
altrimenti vai a leggere quelli nell'altro settore. Il flag di commit puo'
essere comodamente sostituito da un CRC o un MD.
La partizione con gli mp3 puo' essere montata da qualsiasi supporto, CD, HD etc
e il suo comportamento non da fastidio al resto del sistema (per esempio puoi
voler spegnere l'HD dopo aver letto l'mp3 lasciando le testine parcheggiate).
Ciao!
[1] Bisogna verificare a che livello di granularita' avviene la cancellazione
della flash, se avviene a livello di byte non hai problemi, altrimenti va
pensata meglio.
-- 
 Daniele
-------------------------------------------------------------------------------
We come to bury DOS, not to praise it.
(Paul Vojta, 
vo...@math.berkeley.edu
, paraphrasing a quote of Shakespeare)



Io sotto MS-DOS 6.2 e compilatore BorlandC++3.1 uso la semplice
  fopen( "nomefile","r+b" )
per aggiornare il file contenente i miei dati che pero' e' di lunghezza
fissa (molto importante).
Ma la prima volta il file va creato con modo write:
  fopen( "nomefile","w+b" )
La scrittura del file si puo' interrompere in qualsiasi momento senza
perdita di dati, ne danni allo stupido file system FAT16 del DOS, proprio
perche' la lunghezza del file non viene mai cambiata, ne la sua posizione
fisica sul disco perche' e' aperto in lettura piu' modifica.
Poi per sapere se i dati sono corretti basta aggiungere CRC e CheckSum a
piacere, oppure correzione di errore tipo CD "8 a 14", ma non ho
documentazione a proposito.
Con questo metodo tengo aggiornato un file da 64K, e ripeto no-problem.
ciao
donCiccio

scrivere come dati puri.
Prova con una 93C56 attaccata ad una porta a piacere.
E' una eeprom seriale dall'esorbitante costo di 2 sacchi
e mezzo (2.500 lire, catalogo Futura) che tiene mezzo Kbyte.
E chiaro che devi assicurare la presenza dell'alimentazione
per il brevissimo tempo richiesto per la scrittura, ma la
situazione dovrebbe essere molto meno critica di quella
che avresti usando un hard disk.
-- 
sr - null...@PAMflashnet.it <strip NOS & PAM to email>

della flash, se avviene a livello di byte non hai problemi, altrimenti va
A livello di settore, le dimensioni dipendono dal chip.


parte"un sistema d'avvioo meglio direi un sistemino operativo.
Solo una precisazione, il BIOS NON č ne un sistema operativo ne un sistemino
operativo altrimenti che facciamo, diciamo che il DOS č un sistema
operativo????? ;)
Ciao
Carlini Alessio

 d'accordo,o no?
Si, se hai un solo disco con una sola partizione.
Se hai  n  partizioni, ne puoi tenere  n-1  senza filesystem  e avere
ugualmente un sistema operativo con il suo filesystem.
Se poi puoi inserire dischetti dopo che il S.O. e' partito...
	Mauro

 anche sul disco non partizionato.
Ci spiegheresti come? è molto interessante...
grazie


 Ciao, e grazie.
Semplicemente mitico... :-)


 --------------------------------------------------------------------------


 risposta affermativa che negativa, mi spiegate brevemente perchč?
Il poster originale non vuole correre il rischio di perdere i dati
a causa del 'lazy write' che usano (quasi tutti) i sistemi operativi.
Cioč, una chiamata a write scrive non su disco, ma su un buffer in
memoria, che viene
suotato in un qualche momento futuro da un thread/processo/cazzabubbolo
di sistema
(sotto Linux kflushd, credo)
Il problema  che se c'č un crash tra la write e il passggio del flusher
e i tuoi dati sono 
ancora sul buffer vanno persi.
Cheers,
	alf

 grazie
# dd if=/what/ever of=/dev/hdb
Cheers,
	alf

Ci spiegheresti come? è molto interessante...
fd=open("/dev/hdb", O_RDWR, 0600);
write(fd, buf, sizeof(buf));
close(fd);
eccetera. Pero` serve un sistema operativo vero.


 
Non ho voglia di postare un trattato completo su come avvieen l'avvio di 
un pc anche se potrei pure farlo.Semplicemente perchè io non ho mai detto 
che il BIOS è un sistema operativo,ma a tale proposito sappi che 
esistevano delle ROM(e forse esistono ancora) con una piccola porzione di 
basic,sto parlando di pc non di commodore e simili, per consentire l'uso 
del pc quando si avvia il pc senza disco,questo ROM basic veniva anche 
utilizzato dal basic interpretato su disco,ma non c'è modo di 
accorgersene. 
Cmq non ho mai detto che il BIOS è un sistema operativo.
OK???
Ciao

 no, non lo devi formattare... dd scrive sulla destinazione "grezza"
Ecco questo non lo sapevo.Ma sei sicuro?Scrive a casaccio?

> a mancare la corrente, e il RAID purtroppo non puo' nulla contro i black-outs.
Infatti.Io mi riferivo alla parte del discorso riferita a "avere copie di 
back-up"che in seguito ho scoperto non essere una buona soluzione al suo 
problema.L'unica buona anzi ottima soluzione è utilizzare un gruppo di 
continuita'.
Ciao.

 ancora sul buffer vanno persi.
E porre tutti i buffer a zero?Scrittura diretta su disco non appena viene 
digitato un tasto?
Ciao.

 Ecco questo non lo sapevo.Ma sei sicuro?Scrive a casaccio?
?? A casaccio ??  8-|
NO, scrive un settore dopo l'altro, a partire dal primo, senza usare
un filesystem..
(i settori sono gia' presenti, anche su un hd appena comprato..)


 
Scusate se mi intrometto, ma mi e' venuto un dubbio: scrivendo in questo
modo su disco, se si vuole poi fare una lettura, bisogna ricordarsi cosa
si e' scritto prima per poter leggere in modo esatto? Mi spiego, se io
scrivo dati di diverse dimensioni, devo ricordarmi cosa ho scritto e in
che ordine, altrimenti perdo l'allineamento, o sbaglio?
Ciao, Luca.
-- 
*******************************************************
       "Dio non e' morto.
        E' vivo e sta lavorando
        a un progetto
        meno ambizioso"
				    graffito anonimo
  Reply to 
bia...@maganet.net
*******************************************************

 che ordine, altrimenti perdo l'allineamento, o sbaglio?
E' proprio per questo che di solito di usano i filesystem.
Scrivere in un disco grezzo e' come scrivere in un unico file,
l'organizzazione dei dati la devi gestire da solo.  Se i dati
sono pochi la cosa e' fattibile, anche se usare un disco
intero (o una partizione intera) e' uno spreco.
	Mauro

 Ecco questo non lo sapevo.Ma sei sicuro?Scrive a casaccio?
Non credo sia possibile scrivere su un disco non formattato. Il drive
non riuscirebbe a trovare le intestazioni dei settori che, appunto,
vengono scritte in fase di formattazione. Al limite può darsi che quel
comando formatti la singola traccia prima di scriverci sopra.
EMG

 comando formatti la singola traccia prima di scriverci sopra.
Gli hard disks sono tutti gia' preformattati, quindi quando scrivi su un device 
tipo /dev/hda o /dev/hda1 stai scrivendo in settori gia' presenti sul disco,
infatti non esiste neanche un comando linux per formattare gli harddisks.
Ciao.
-- 
 Daniele
-------------------------------------------------------------------------------


 'The Krazy One'   ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** How do I love thee? My accumulator overflows. **---


Aspe' io ho installato Linux parecchie volte ed ho usato fdisk e 
formattato l'hd dopo anche se č passato un po'; di tempo e non ricordo il 
nome del comando,ma ne sono sicuro.Compariva anche la finestrina please 
wait e si udiva l'hd che veninva formatatto.E' almeno 10 volte piů veloce 
del dos.
Ciao.

 infatti non esiste neanche un comando linux per formattare gli harddisks.
Possibile? E se ti si rovina la formattazione che fai, lo butti?
EMG

 Possibile? E se ti si rovina la formattazione che fai, lo butti?
Gli hard disks utomaticamente rimappano i settori rovinati con altri che
prendono da un pool, tutto trasparentemente.
Gli IDE sono praticamente non formattabili (e' estremamente facile rovinarli,
visto che l'interfaccia per formattarli non e' standard), mentre gli SCSI
possono essere formattati a basso livello senza grossi problemi. La maggior
parte dei controllers SCSI hanno un tool di formattazione nel loro BIOS.
Ciao.
-- 
 Daniele
-------------------------------------------------------------------------------
"I'd crawl over an acre of 'Visual This++' and 'Integrated Development
That' to get to gcc, Emacs, and gdb.  Thank you."
(By Vance Petree, Virginia Power)
-------------------------------------------------------------------------------
 Dal 01-03-1993, con un solo POP abbiamo fatto guadagnare a telecom italia
 38.598.094 Lire solo in scatti alla risposta. Non male eh ?


Possibile? E se ti si rovina la formattazione che fai, lo butti?
Di solito si', se ti si rovina la *formattazione*, a parte alcuni tipi di HD
che si possono formattare *a basso livello*.
Non confondere il Format del dos, che non formatta nulla, scrive solo la fat
a zero, la directory radice nulla e legge e scrive il contenuto dei settori
per verificarne l'efficienza, con la vera formattazione (di solito chiamata
*a basso livello*) che da una superficie magnetica vergine costruisce la
struttura *gap*settore*gap..... di memorizzazione.
La formattazione coma la intende il dos e' null'altro che il mk[??]fs [-c].
Ciao.roberto
--
Save our planet!
Save wildlife;
For your E-MAIL use only recycled Bytes !!
roberto poggi  
rpo...@softhome.net

 Gli IDE sono praticamente non formattabili
Hai ragione. Mi sono confuso con i dischetti.
EMG

 La formattazione coma la intende il dos e' null'altro che il mk[??]fs [-c].
Tutto vero. Scusate ma stavo pensando ai dischetti.
EMG

 'The Krazy One'   ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** This isn't hell, but I can see it from here. **---

Idem con patate, non mi risulta che i dischetti si debbano formattare.
Sbagliato, tant'e vero che lo stesso floppy da 1.44 lo puoi formattare ad un
numero quasi arbitrario di settori/traccie, ad esempio con superformat.
Uso spesso floppy oltre il mega e sette, e con il dos mi divertivo a fare
settori a lunghezza diversa sullo stesso floppy.


 Idem con patate, non mi risulta che i dischetti si debbano formattare.
Eh no, qui sbagli al 100%: un dischetto non formattato non è scrivibile,
come d'altronde non lo è un hard disk. Ma mentre gli hard disk, come
avete giustamente detto, oggigiorno te li danno già formattati e non è
il caso di riformattarli, i floppy, anche se li vendono anch'essi già
formattati, possono essere riformattati quante volte si vuole e la loro
è una _vera_ formattazione a livello di settori.
EMG

 'The Krazy One'   ::--------
->  "To reign is worth ambition, though in hell."   |  UIN: 21267457  <-
-<  "Better to Reign in Hell Than Serve in Heaven"  | ircnet: krazy98 >-
---** Do steam rollers really roll steam? **---

 precedenza, ma non so se questo c'entri qualcosa,
C'entra.  Su un dischetto non formattato non si puo' scrivere, e neanche
metterci un filesystem; prima ci vuole fdformat o simile.  Adesso molte
volte i dischetti li vendono gia' formattati, e quindi il problema non
si presenta.
	Mauro