Newsgroup: it.comp.os.linux.iniziare
Titolo: Attingere a dati su floppy molto presto durante il boot

I primi link che ho in /etc/rcS.d, e che quindi si riferiscono agli
script che vengono lanciati per primi durante il boot, sono questi:
S01mountkernfs.sh
S01readahead
S02hostname.sh
S06keyboard-setup
S07linux-restricted-modules-common
S08hwclockfirst.sh
S08loopback
S10udev
S11hwclock.sh
S11mountdevsubfs.sh
S13pcmciautils
S15module-init-tools
S17procps.sh
S20checkroot.sh
S22mtab.sh
S25brltty
S26cryptdisks-early
S28checkfs-loop
S28cryptdisks
S30checkfs.sh
S35mountall.sh
[...]
Io vorrei riempire un floppy privo di filesystem (dev'essere per
forza un floppy) con dati casuali. Poi, *prima* che venisse lanciato
S26cryptdisk-early, vorrei accedere ad uno specifico intervallo di
byte nel floppy, e usarlo come chiave per la decrittazione dati.
Insomma lo dovrei fare con uno script con priorità S25.
L'idea che m'è venuta sarebbe quella di operare con dd, avendo il
floppy come origine, e un file su /dev/shm (filesystem in ram già
montato con S11, e mi pare unico usabile in quel momento) come
destinazione. 
Qualcosa come:
dd if=/dev/fd0 of=/dev/shm/keyfile skip=121 bs=256
Naturalmente /etc/crypttab sarà stato modificato così che luks usi
/dev/shm/keyfile per leggere la chiave che gli serve, chiave
precedentemente aggiunta alla collezione di chiavi valide per il
dispositivo crittato.
Alla fine del boot, il file keyfile verrà cancellato da /dev/shm
(magari metto qualcosa in rc.local).
I problemi che mi restano sono:
a) dd sarà già disponibile, per quando mi serve?
b) 'sto script, che chiamerei flyfd, e poi linkerei come S25flyfd
usando opportunamente il comando update-rc.d, come dev'esser fatto?
Che ci metto dentro, oltre a quanto segue? Magari qualcosa per far
eseguire lo script solo se il floppy c'è?
#! /bin/sh
dd if=/dev/fd0 of=/dev/shm/keyfile skip=121 bs=256
-- 
Bye, Lem
Ceterum censeo ISLAM esse delendum
__________________________________
Combatti l'AIDS col tuo computer: 
http://fightaidsathome.scripps.edu/

Lem Novantotto ha scritto:

Non so se blatero a vanvera, ma questo non dovrebbe essere un ng nel 
quale alla fine c'e' scritto "iniziare"?
Naturalmente non parlo solo di questo post, ma effettivamente questo mi 
sembra un po' tosto per un ng dove c'e' chi cerca consigli solo per l'abc.
Almeno io non c'ho capito na' mazza.

 Almeno io non c'ho capito na' mazza.
Ma non è vietato chiedere cose difficili ;)
David
-- 
 . ''`.  Debian maintainer | 
http://wiki.debian.org/DavidPaleino
 : :'  : Linuxer #334216 --|-- 
http://www.hanskalabs.net/
 `. `'`  GPG: 1392B174 ----|---- 
http://snipr.com/qa_page
   `-   2BAB C625 4E66 E7B8 450A C3E1 E6AA 9017 1392 B174

 dd if=/dev/fd0 of=/dev/shm/keyfile skip=121 bs=256
Per controllare se il floppy c'è, una cosa che mi è venuta in mente è (ho un
portatile floppy-less, quindi ho provato col cd):
# mount /dev/cdrom2 
mount: No medium found
# echo $?
32
Quindi potresti fare una cosa del tipo
--->8---
#!/bin/bash
status=$(mount /dev/fd0 &>/dev/null; echo $?)
[ "$status" != "0" ] && dd if=/dev/fd0 of=/dev/shm/keyfile skip=121 bs=256
---8<---
ovviamente dopo l'&& non devi montar nulla, perché casomai lo hai già fatto
nella riga status=$(..)
Occhio a prendere questi consigli con le pinze; prima prova mettendo un paio di
echo qua e là. ;)
HTH,


 [ "$status" != "0" ] && dd if=/dev/fd0 of=/dev/shm/keyfile skip=121 bs=256
Ovviamente qui non è "&&", ma "||". ;)
(meglio usare la notazione "[ ! test ] || ..." invece di "[ test ] && ..."
perché... [1])
David
[1] 
http://lists.debian.org/debian-mentors/2008/02/msg00260.html


 Almeno io non c'ho capito na' mazza.
Anche a me capita sicuramente di capir poco di certe richieste che
compaiono su questo gruppo.
Comunque in quest'occasione credo di essere stato io inutilmente
complicato, e chiedo scusa a te e a tutti: potevo certamente essere
molto più sintetico, senza tirare in ballo il contesto.
Provo a riformulare:
data la sequenza di script iniziali citata in precedenza, voglio
creare un boot-script che abbia priorità 25 in /etc/rcS.d e che
faccia questo:
dd if=/dev/fd0 of=/dev/shm/keyfile skip=121 bs=256
Posso?
Come lo scrivo?
Grazie in anticipo.


 Come lo scrivo?
Hai visto le mie due risposte? :)


 echo qua e là. ;)
Ti ringrazio moltissimo di tutto, provo. :)


 quale alla fine c'e' scritto "iniziare"?
infatti lui sta "iniziando" a fare questo tipo operazione, dov'č il
problema?

Almeno io non c'ho capito na' mazza.
Io c'ho capito che sento odore di dati criptati perduti per sempre: sui
sui floppy non c'e' da farci il minimo affidamento!
-- 
Ciao Minotto

 echo qua e là. ;)
Ti ringrazio ancora. :)
Ho provato or ora con successo.
L'ultima prova, riuscita, è stata fatta collo script:
#!/bin/bash
[ ! -f /bin/dd ] || echo "dd è disponibile"
[ ! -d /dev/shm ] || echo "shm è disponibile"
[ ! -b /dev/fd0 ] || echo "fd0 è disponibile"
touch /dev/shm/testfile && echo "file creabile"
dd if=/dev/fd0 of=dev/shm/keyfile bs=256 skip=121 count=1 && echo "floppy presente e copia fatta"
echo $(ls -la /dev/shm/keyfile)
exit 0


 sui floppy non c'e' da farci il minimo affidamento!
Beh, la chiave che voglio prendere dal floppy non è mica l'unica. ;)


 echo $(ls -la /dev/shm/keyfile)
adesso sappiamo tutti in che posizione hai meso la chiave!!! ;)
Occhio a quell'of, manca lo / iniziale 
in ogni caso, la cosa che shm è l'unica partizione montata mi sembra
strano, com epotresti avere /bin/dd a disposizione altrimenti?
ah,alla fine dello script dovresti mettere	la cancellazione di
/dev/shm/keyfile  ^_^

 /dev/shm/keyfile  ^_^
 
Eh no, il keyfile dev'essere utilizzato da altri script. La
cancellazione la metto poi in /etc/rc.local. :)


 cancellazione la metto poi in /etc/rc.local. :)
ehm volevo dire questo, ma era tardi e avevo sonno  :|

 
Voleva solo essere una simpatica richiesta di chiarimenti, perche' a me 
capita a volte di pormi il problema se postare o no qui o altrove, visto 
che ogni tanto sulla questione qualcuno s'incazza (;-o

 che ogni tanto sulla questione qualcuno s'incazza (;-o
E' anche vero che chi si incazza puo' benissimo disincazzarsi o andare a 
fare qualcosa la' dove non batte il sole.