Pagina 1 di 2
Cannot stat /dev/mapper/swap0 : No such file or dir.
Inviato: lun 25 ago 2008, 0:52
da jena
Ciao a tutti!!!
Vi chiedo aiuto perchè stò cercando di criptare la mia partizione swap...
Ho installato questi pacchetti:
cryptsetup-1.0.5-i486-2.tgz
libgpg-error-1.5-i486-1.tgz
device-mapper-1.02.19-i486-2.tgz
libgcrypt-1.2.4-i486-1.tgz
lvm2-2.02.09-i486-1.tgz
Seguendo la prima parte di questa
http://www.ucci.it/docs/ICTSecurity-2006-44.pdf guida quella sulla swap ho dato i seguenti comandi:
Codice: Seleziona tutto
cryptsetup -c aes-cbc-essiv:sha256 -s 256 -d /dev/urandom create swap0 /dev/hda2
mkswap /dev/mapper/swap0
swapon /dev/mapper/swap0
E sembrava funzionare infatti il comando free mostrava lo spazio totale libero e inutilizzato e cryptsetup mostrava la partizione come attiva:
Codice: Seleziona tutto
cryptsetup status swap0
/dev/mapper/swap0 is active:
cipher: aes-cbc-essiv:sha256
keysize: 128 bits
device: /dev/hda2
offset: 0 sectors
size: 1269135 sectors
mode: read/write
Come consigliato in questa
http://persone.linux.it/article/read.php?id=161 guida per montare all'avvio la partizione swap criptata ho commentato la vecchia riga della swap e ho aggiunto la seguente riga ad fstab:
Poi ho creato il file /etc/crypttab:
E ci ho inserito la seguente riga:
Codice: Seleziona tutto
swap0 /dev/hda2 /dev/urandom cipher=aes-cbc-essiv:sha256,size=128,swap
Il problema è che quando riavvio il sistema ricevo questo errore:
Codice: Seleziona tutto
stat: cannot stat `/dev/mapper/swap0 : No such file or directory
E' come se la directory /dev/mapper/swap0 non fosse stata mai creata...infatti:
Codice: Seleziona tutto
cryptsetup status swap0
/dev/mapper/swap0 is inactive.
Non riesco a capire dove sbaglio...
Spero possiate aiutarmi...
Grazie!!!
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: lun 25 ago 2008, 8:34
da conraid
Prima si leggono le sacre scritture e poi al limite documenti esterni
ftp://ftp.slackware.com/pub/slackware/s ... _CRYPT.TXT
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: lun 25 ago 2008, 10:50
da Ansa89
Hai compilato il modulo per il device-mapper (con supporto per volumi criptati) nel tuo kernel?
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: mar 26 ago 2008, 14:34
da jena
Grazie mille della risposta!!!
Ho dimenticato di dire che utilizzo slackware 11 mentre il link è per la 12 e tutto quello che sono riuscito a trovare è questo:
ftp://ftp.slackware.com/pub/slackware/s ... NOTICE.TXT
Inoltre cryptsetup l'ho trovato a questa pagina:
http://www.slackware.com/~alien/slackbu ... /pkg/11.0/
dove non ho trovato istruzioni...
Hai compilato il modulo per il device-mapper (con supporto per volumi criptati) nel tuo kernel?
Uso il kernel 2.6.17.13 già precompilato possono esserci problemi???
Grazie!!!
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: mar 26 ago 2008, 14:59
da conraid
jena ha scritto:
Uso il kernel 2.6.17.13 già precompilato possono esserci problemi???
Codice: Seleziona tutto
$ grep CONFIG_BLK_DEV_DM /boot/config*2.6.17.13*
$ grep CONFIG_DM_CRYPT /boot/config*2.6.17.13*
dovresti avere
o al limite come modulo
Come mi sembra che pat metta nel kernel.
Se sono come modulo caricali
Altrimenti, se non ci sono o sono
Codice: Seleziona tutto
# CONFIG_BLK_DEV_DM is not set
#CONFIG_DM_CRYPT is not set
ricompila il kernel
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: mar 26 ago 2008, 16:49
da jena
Grazie mille dell'aiuto!!!
Sono tutti e due caricati come moduli:
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
Infatti li ho inseriti tra i moduli da caricare all'avvio...
Ho seguito la procedura consigliata su questa guida per partizioni criptate su slackware
http://www.linuxvar.it/index.php/Partizioni_crittate ma continuo a ricevere lo stesso errore...
Descrivo tutto quello che ho fatto io vorrei solo criptare la swap:
Ho creato l associazione tra i device:
Codice: Seleziona tutto
cryptsetup -c aes-cbc-essiv:sha256 -s128 -d /dev/random create cryptswap /dev/hda2
Poi ho creato il file system sul device virtuale:
Ho modificato la riga della swap di fstab:
Ho creato il file /etc/crypttab:
E ci ho aggiunto la seguente riga:
Codice: Seleziona tutto
# <target device> <source device> <key file> <options>
cryptswap /dev/hda2 /dev/urandom chiper=aes-cbc-essiv:sha256,size=128 swap
Ho modificato lo script /etc/rc.d/rc.S:
Codice: Seleziona tutto
# Enable swapping (with crypted swap):
/usr/sbin/cryptsetup -c aes-cbc-essiv:sha256 -s128 -d/dev/random create cryptswap /dev/hda2 -v
/sbin/mkswap /dev/mapper/cryptswap
/sbin/swapon -a
Ho seguito la procedura della guida utilizzando però un algoritmo diverso aes-cbc-essiv:sha256 però continuo a ricevere lo stesso errore...
Spero possiate aiutarmi...
Grazie!!!
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: mar 26 ago 2008, 20:40
da targzeta
Il problema potrebbe essere legato a udev, sai come viene creato il file /dev/mapper/xxx? Viene creato automaticamente al caricamento di un modulo?
Quando dici che esegui
lo fa bene o ti da errore? Ricordati che al riavvio è udevd che si occupa di gestire la directory /dev. Se è un modulo che si occupa della creazione del device, prima devi caricare il modulo, poi fai partire udevd (oppure prima fai partire udevd e poi carichi il modulo), il quale rileva gli eventi e crea, eventualmente il file di device, e solo allora puoi lanciare mkswap. Una volta partito il PC, controlla se il file esiste, se è così vuol dire che c'è qualcosa che non va nella catena che ti ho descritto.
Dal file rc.S della slackware, sembra che prima viene eseguito udevd e poi vengono caricati i moduli necessari. Ma perchè non metti tutti i comandi all'interno del file rc.local? Se li metti in rc.S devi controllare di metterli in fondo, o almeno dopo l'esecuzione del caricamento dei moduli, ma sarebbe più pulito metterli in rc.local IMHO.
Spero di essere stato chiaro e, soprattutto, d'aiuto.
Spina
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: mer 27 ago 2008, 9:03
da conraid
Nella 12.1 per la swap viene consigliato di non fare molto. Nel senso che basta aggiungere
al file crypttab e
al file fstab
Questo perché quando parte il sistema fa tutto lui, creando anche la chiave (che te frega di saperla per swap?), quando lo "smonti" ricrea una partizione normale usabile con altri sistemi operativi per esempio. Quindi hai una swap criptata temporanea
Queste sono le righe per gestire il montaggio delle partizioni criptate, e farne uno al volo se trova swap
Codice: Seleziona tutto
# Open any volumes created by cryptsetup:
if [ -f /etc/crypttab -a -x /sbin/cryptsetup.static ]; then
# First, check for device-mapper support.
if ! grep -wq device-mapper /proc/devices ; then
# If device-mapper exists as a module, try to load it.
# Try to load a device-mapper kernel module:
/sbin/modprobe -q dm-mod
fi
# NOTE: we only support LUKS formatted volumes (except for swap)!
cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ')
DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ')
PASS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f3 -d' ')
OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ')
LUKSOPTS=""
if echo $OPTS | grep -wq ro ; then LUKSOPTS="${LUKSOPTS} --readonly" ; fi
# Skip LUKS volumes that were already unlocked (in the initrd):
/sbin/cryptsetup.static status $LUKS 1>/dev/null 2>/dev/null && continue
if /sbin/cryptsetup.static isLuks $DEV 2>/dev/null ; then
echo "Unlocking LUKS crypt volume '${LUKS}' on device '$DEV':"
if [ -n "${PASS}" ]; then
if [ -f ${PASS} ]; then
/sbin/cryptsetup.static ${LUKSOPTS} --key-file=${PASS} luksOpen $DEV $LUKS
elif [ "${PASS}" != "none" ]; then
# A password field of 'none' indicates a line for swap:
echo "${PASS}" | /sbin/cryptsetup.static ${LUKSOPTS} luksOpen $DEV $LUKS
fi
else
for i in seq 1 3 ; do
/sbin/cryptsetup.static ${LUKSOPTS} luksOpen $DEV $LUKS </dev/tty0 >/dev/tty0 2>&1
[ $? -eq 0 ] && break
done
fi
elif echo $OPTS | grep -wq swap ; then
# If any of the volumes is to be used as encrypted swap,
# then encrypt it using a random key and run mkswap:
echo "Creating encrypted swap on device '$DEV' mapped to '${LUKS}':"
/sbin/cryptsetup.static --cipher=aes --key-file=/dev/urandom --key-size=256 create $LUKS $DEV
mkswap /dev/mapper/$LUKS
fi
done
fi
# Enable swapping:
/sbin/swapon -a
Alle fine le righe interessate sono più o meno come hai fatto tu, prova a fare come dice spina di metterlo in rc.local, o meglio ancora fai uno script autosufficiente (rc.swap per esempio), con caricamento moduli, sezioni per cryptosetup e caricamento dello swap, e poi lo richiami da rc.local
in questo modo hai tutto in un file e puoi modificarlo o metterlo in non esecuzione quando e come vuoi
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: mer 27 ago 2008, 16:12
da jena
Grazie mille dell'aiuto!!!
Ho seguito il vostro consiglio ho tolto le righe che avevo aggiunto a rc.S e le ho aggiunte a rc.local:
Codice: Seleziona tutto
# Enable swapping (with crypted swap):
/usr/sbin/cryptsetup -c aes-cbc-essiv:sha256 -s128 -d/dev/random create cryptswap /dev/hda2 -v
/sbin/mkswap /dev/mapper/cryptswap
/sbin/swapon -a
Sembra funzionare infatti ora all'avvio prima del login viene creata la partizione di swap...
Ora però mi rimangono 2 dubbi:
Il file /etc/crypttab che avevo creato serve ancora???
Continuo a ricevere lo stesso errore all'avvio e non riesco a capire il motivo volevo controllare /var/log/boot.log ma il file non eiste...dove posso trovarlo???
Codice: Seleziona tutto
quando lo "smonti" ricrea una partizione normale usabile con altri sistemi operativi per esempio. Quindi hai una swap criptata temporanea
E' cosi anche nel mio caso oppure mi consigliate di inserire il comando per smontare e quello per creare una partizione swap normale in rc.local_shutdown???
Grazie!!!
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: mer 27 ago 2008, 17:31
da conraid
Per l'errore devi capire quale script cerca quel file. Ma ora l'errore preciso qual'è?
Per /etc/crypttab non dovrebbe essere importante in quanto in base a quello lo script di avvio decide il da farsi "come chiedere una password", etc... ma se tu fai tutto in rc.local non conta. Anche se la mia è supposizione
Per rimuovere lo swap in rc.6 c'è questo
Codice: Seleziona tutto
# Close any volumes opened by cryptsetup:
if [ -f /etc/crypttab -a -x /sbin/cryptsetup.static ]; then
cat /etc/crypttab | grep -v "^#" | grep -v "^$" | while read line; do
# NOTE: we only support LUKS formatted volumes (except for swap)!
LUKS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f1 -d' ')
DEV=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f2 -d' ')
OPTS=$(echo $line | tr '\t' ' ' | tr -s ' ' | cut -f4 -d' ')
if /sbin/cryptsetup.static isLuks $DEV 2>/dev/null ; then
echo "Locking LUKS crypt volume '${LUKS}':"
/sbin/cryptsetup.static luksClose ${LUKS}
elif echo $OPTS | grep -wq swap ; then
# If any of the volumes was used as encrypted swap,
# then run mkswap on the underlying device -
# in case other Linux installations on this computer should use it:
echo "Erasing encrypted swap '${LUKS}' and restoring normal swap on ${DEV}:"
/sbin/cryptsetup.static remove ${LUKS}
mkswap $DEV
fi
done
fi
quindi penso che a te basti usare le ultime righe in rc.local_shutdown
Ma negli script di avvio della 11 non c'è niente di questo? non vorrei che fa ugualmente un controllo di /etc/crypttab ed ecco l'errore
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: mer 27 ago 2008, 20:28
da jena
Per l'errore devi capire quale script cerca quel file. Ma ora l'errore preciso qual'è?
Grazie dell'aiuto!!!
L'errore è :
Codice: Seleziona tutto
swapon: cannot stat `/dev/mapper/swap0 : No such file or directory
Ma negli script di avvio della 11 non c'è niente di questo? non vorrei che fa ugualmente un controllo di /etc/crypttab ed ecco l'errore
Ho controllato in rc.6 ma non cè niente che fà riferimento a cryptsetup...
Codice: Seleziona tutto
quindi penso che a te basti usare le ultime righe in rc.local_shutdown
Ora provo...
Grazie!!!
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: gio 28 ago 2008, 0:42
da jena
Ho seguito il tuo consiglio ho creato uno script rc.swap:
Codice: Seleziona tutto
#!/bin/bash
# cryptsetup
/sbin/modprobe aes
/sbin/modprobe sha256
/sbin/modprobe dm_mod
/sbin/modprobe dm_crypt
# Enable swapping (with crypted swap):
/usr/sbin/cryptsetup -c aes-cbc-essiv:sha256 -s 128 -d /dev/random create swap0 /dev/hda2 -v
/sbin/mkswap /dev/mapper/swap0
/sbin/swapon -a
che viene avviato da rc.local carica i moduli crea l'associazione tra i device crea la swap e la attiva...in questo modo viene attivata la swap criptata ad ogni avvio...
Ho inserito queste righe in rc.local_shutdown:
Codice: Seleziona tutto
# swapoff
swapoff /dev/mapper/swap0
#rimuove associazione device
/usr/sbin/cryptsetup remove swap0
#formatta la partizione in swap
mkswap /dev/hda2
per disattivare la swap rimuovere l'associzione tra i device e formattare la partizione in swap ad ogni spegnimento...
Non capisco da che cosa deriva l'errore:
Codice: Seleziona tutto
swapon: cannot stat `/dev/mapper/swap0 : No such file or directory
dovrebbe essere qualche script che cerca di attivare la swap...
Grazie!!!
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: gio 28 ago 2008, 9:46
da targzeta
L'errore dovrebbe essere provocato da rc.S, infatti in quello script viene invocato:
che attiva tutte le partizioni swap impostate nell'fstab. Quindi lui tenta di montare anche la tua swap criptata, solo che finché non carichi i moduli il device non viene creato e quindi....non trova il file.
Dovresti, nel tuo fstab aggiungere l'opzione 'noauto' nell'entry della swap (per evitare che lo swapon dell'rc.S tenti di caricarla). E poi metterci uno swapon (ma serve??) nel file rc.local che hai creato, questo dovrebbe risolvere tutti i problemi.
Spina
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: gio 28 ago 2008, 9:59
da conraid
Permetti di darti un consiglio.
Non sull'errore, per quello segui il consiglio di spina, ma di pulizia dei file di init della Slackware
Visto che hai fatto rc.swap come ti ho detto, allora a questo punto fai le cose in "grande"
rc.swap
Codice: Seleziona tutto
swap_start() {
# cryptsetup
/sbin/modprobe aes
/sbin/modprobe sha256
/sbin/modprobe dm_mod
/sbin/modprobe dm_crypt
# Enable swapping (with crypted swap):
/usr/sbin/cryptsetup -c aes-cbc-essiv:sha256 -s 128 -d /dev/random create swap0 /dev/hda2 -v
/sbin/mkswap /dev/mapper/swap0
/sbin/swapon -a
}
swap_stop () {
# swapoff
swapoff /dev/mapper/swap0
#rimuove associazione device
/usr/sbin/cryptsetup remove swap0
#formatta la partizione in swap
mkswap /dev/hda2
}
case "$1" in
start)
swap_start
;;
stop)
swap_stop
;;
*)
echo "Usage: $0 {start|stop}"
esac
in rc.local metti
Codice: Seleziona tutto
if [ -x /etc/rc.d/rc.swap ]; then
/etc/rc.d/rc.swap start
fi
in rc.local_shutdown invece
Codice: Seleziona tutto
if [ -x /etc/rc.d/rc.swap ]; then
/etc/rc.d/rc.swap stop
fi
Ho scritto direttamente nell'editor di phpbb e senza controllare, attento a possibili errori
Re: cannot stat /dev/mapper/swap0 : No such file or direc
Inviato: gio 28 ago 2008, 15:37
da jena
E poi metterci uno swapon (ma serve??) nel file rc.local che hai creato, questo dovrebbe risolvere tutti i problemi.
Grazie mille del consiglio!!!
Ho aggiunto l'opzione noauto e ora non ricevo più l'errore...
Non è stato necessario inserire /sbin/swapon -a /dev/mapper/swap0 in rc.local perchè lo avevo già inserito alla fine dello script rc.swap...
Permetti di darti un consiglio.
Non sull'errore, per quello segui il consiglio di spina, ma di pulizia dei file di init della Slackware
Visto che hai fatto rc.swap come ti ho detto, allora a questo punto fai le cose in "grande"
Grazie del consiglio!!!
L'ho fatto e sembra funzionare...
Permettimi di farti qualche domanda...
Il file rc.swap dopo le modifiche fatte cosa è diventato uno script???
In rc.local
Codice: Seleziona tutto
if [ -x /etc/rc.d/rc.swap ]; then
/etc/rc.d/rc.swap start
fi
Questo significa che deve eseguire solo i comandi all'interno della prima parte dle file rc.swap cioè carica i moduli crea l'associazione tra i device crea la swap e la attiva???
In rc.local_shutdown
Codice: Seleziona tutto
if [ -x /etc/rc.d/rc.swap ]; then
/etc/rc.d/rc.swap stop
fi
Questo significa che deve eseguire solo i comandi all'interno della seconda parte del file rc.swap cioè disattivare la swap rimuovere l'associzione tra i device e formattare la partizione in swap ad ogni spegnimento???
Grazie!!!