|
|
@ -0,0 +1,123 @@ |
|
|
|
# --- ROCK-COPYRIGHT-NOTE-BEGIN --- |
|
|
|
# |
|
|
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
|
|
# Please add additional copyright information _after_ the line containing |
|
|
|
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by |
|
|
|
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text! |
|
|
|
# |
|
|
|
# ROCK Linux: rock-src/package/blindcoder/ezipupdate/mod_ezipupdate.sh |
|
|
|
# ROCK Linux is Copyright (C) 1998 - 2005 Clifford Wolf |
|
|
|
# |
|
|
|
# This program is free software; you can redistribute it and/or modify |
|
|
|
# it under the terms of the GNU General Public License as published by |
|
|
|
# the Free Software Foundation; either version 2 of the License, or |
|
|
|
# (at your option) any later version. A copy of the GNU General Public |
|
|
|
# License can be found at Documentation/COPYING. |
|
|
|
# |
|
|
|
# Many people helped and are helping developing ROCK Linux. Please |
|
|
|
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM |
|
|
|
# file for details. |
|
|
|
# |
|
|
|
# --- ROCK-COPYRIGHT-NOTE-END --- |
|
|
|
# |
|
|
|
# [MAIN] 60 dm DeviceMapper configuration (encrypted filesystems) |
|
|
|
|
|
|
|
dm_edit_status () { |
|
|
|
gui_menu dm_edit_status "Please select new status of $device" \ |
|
|
|
"Is encrypted" "status=encrypted" \ |
|
|
|
"Decrypt" "status=decrypt" \ |
|
|
|
"Encrypt" "status=encrypt" \ |
|
|
|
"Encrypted Swap (read documentation)" "status=swap" \ |
|
|
|
"not encrypted" "status=plain" |
|
|
|
} |
|
|
|
|
|
|
|
dm_edit_dev () { |
|
|
|
cmd="" |
|
|
|
for x in /dev/{ide,scsi}/host*/bus*/target*/lun*/{disc,part*} ; do |
|
|
|
[ -b $x ] || continue |
|
|
|
cmd="$cmd '$x' 'device=$x'" |
|
|
|
done |
|
|
|
eval "gui_menu dm_edit_dev \"Please select new device to mount on $mountpoint\" $cmd" |
|
|
|
} |
|
|
|
|
|
|
|
dm_edit () { |
|
|
|
device=$1 |
|
|
|
while read olddevice oldmountpoint oldstatus ; do |
|
|
|
[ "$olddevice" == "$device" ] && break |
|
|
|
done < /etc/conf/dm/mounts |
|
|
|
mountpoint=$oldmountpoint |
|
|
|
status=$oldstatus |
|
|
|
run=0 |
|
|
|
while [ $run -eq 0 ] ; do |
|
|
|
gui_menu dm_edit "Edit encryption for $device" "Device: $device" "dm_edit_dev $mountpoint" \ |
|
|
|
"Mountpoint: $mountpoint" "gui_input 'Please enter new mountpoint' '$mountpoint' mountpoint" \ |
|
|
|
"Status: $status" "dm_edit_status" |
|
|
|
run=$? |
|
|
|
done |
|
|
|
sed -e "s,^$olddevice.*$oldmountpoint.*$oldstatus$,$device\t$mountpoint\t$status," -i /etc/conf/dm/mounts |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
dm_add () { |
|
|
|
cmd="" |
|
|
|
for x in /dev/{ide,scsi}/host*/bus*/target*/lun*/{disc,part*} ; do |
|
|
|
[ -b $x ] || continue |
|
|
|
grep -q $x /etc/conf/dm/mounts && continue |
|
|
|
cmd="$cmd '$x' 'device=$x'" |
|
|
|
done |
|
|
|
eval "gui_menu dm_add1 'Please select the device to use' $cmd" |
|
|
|
cmd="" |
|
|
|
gui_input "Please enter mountpoint of $device" "/data" mountpoint |
|
|
|
gui_menu dm_add2 "Please enter current state of $device" \ |
|
|
|
"is encrypted" "status=encrypted" \ |
|
|
|
"Decrypt" "status=decrypt" \ |
|
|
|
"Encrypt" "status=encrypt" \ |
|
|
|
"Encrypted Swap (read documentation)" "status=swap" \ |
|
|
|
"not encrypted" "status=plain" |
|
|
|
|
|
|
|
echo -e "$device\t$mountpoint\t$status" >>/etc/conf/dm/mounts |
|
|
|
} |
|
|
|
|
|
|
|
main() { |
|
|
|
run=0 |
|
|
|
if [ ! -f /etc/conf/dm/mounts ] ; then |
|
|
|
mkdir -p /etc/conf/dm |
|
|
|
touch /etc/conf/dm/mounts |
|
|
|
fi |
|
|
|
while [ $run -eq 0 ] ; do |
|
|
|
cmd="" |
|
|
|
while read device mountpoint status ; do |
|
|
|
cmd="$cmd 'Edit device $device ($status on $mountpoint)' 'dm_edit $device'" |
|
|
|
done < /etc/conf/dm/mounts |
|
|
|
cmd="$cmd 'Add new device' 'dm_add'" |
|
|
|
eval "gui_menu dm 'encrypted filesystems' $cmd" |
|
|
|
run=$? |
|
|
|
done |
|
|
|
tmp="`mktemp`" |
|
|
|
grep -v "added by mod_dm" /etc/conf/kernel >$tmp |
|
|
|
while read device mountpoint status ; do |
|
|
|
if [ "$status" == "swap" -o "$status" == "encrypted" -o "$status" == "encrypt" -o "$status" == "decrypt" ] ; then |
|
|
|
for x in aes-i586 dm-mod dm-crypt ; do |
|
|
|
grep -q $x $tmp || cat >> $tmp <<-EOF |
|
|
|
### $x ### added by mod_dm |
|
|
|
modprobe $x # added by mod_dm |
|
|
|
EOF |
|
|
|
done |
|
|
|
fi |
|
|
|
done < /etc/conf/dm/mounts |
|
|
|
rm -f /etc/conf/kernel |
|
|
|
mv $tmp /etc/conf/kernel |
|
|
|
chmod 644 /etc/conf/kernel |
|
|
|
|
|
|
|
tmp=`mktemp` |
|
|
|
rm -rf ${tmp} |
|
|
|
grep -v fsck /etc/conf/initrd/initrd_dm > ${tmp} |
|
|
|
rm -f /etc/conf/initrd/initrd_dm |
|
|
|
mv ${tmp} /etc/conf/initrd/initrd_dm |
|
|
|
|
|
|
|
while read dev a mnt b fs c ; do |
|
|
|
[ -e "/sbin/fsck.${fs}" ] && echo "/sbin/fsck.${fs} /sbin/fsck.${fs}" |
|
|
|
done < <( mount ) | sort | uniq >>/etc/conf/initrd/initrd_dm |
|
|
|
echo "/sbin/fsck /sbin/fsck" >>/etc/conf/initrd/initrd_dm |
|
|
|
} |
|
|
|
|