[问题]从硬盘启动 Desktop CD为什么需要密码?

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
angelwolf
帖子: 3
注册时间: 2006-12-06 21:10

[问题]从硬盘启动 Desktop CD为什么需要密码?

#1

帖子 angelwolf » 2006-12-29 23:58

viewtopic.php?t=21688&highlight=
我按照上文做法成功启动后~需要密码才能进入
用户名密码怎么设?
angelwolf
帖子: 3
注册时间: 2006-12-06 21:10

#2

帖子 angelwolf » 2006-12-30 15:57

自己顶
小弟初学~谁给解答个?先谢了
fwater
帖子: 30
注册时间: 2007-01-13 13:24

#3

帖子 fwater » 2007-01-15 19:17

我也遇到过过同样的问题。要输入用户名和密码。
后来重新下了个引导文件就解决了。
引导文件与印像文件要一致啊。
头像
ikaww
帖子: 47
注册时间: 2006-12-01 9:27
来自: 河北保定
联系:

#4

帖子 ikaww » 2007-01-16 9:56

同上,楼主的问题我第一次装时也遇到了,找到对应的引导包才可以。
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

制做引导包的问题

#5

帖子 skyx » 2007-01-16 10:22

这个问题很奇怪,我没有光驱,想装7.04, 好像也找不到7.04的引导包,就自己做了一个:



发现了一个很有意思的现象


我按gnix_oag的脚本自己做了7.04的引导包,没有任何问题,完全可以引导,并且gnix_oag的脚本做6.10的引导包也不会有任何问题。




但是如果把6.06引导包解开,用6.06的脚本来制做7.04的引导文件再打包,这样启动后就会出现启动后要输入密码的问题。


后来把#初始化用户名、用户全称、主机名
的部分改为下面的,打包后还是要输入密码:
USERNAME=ubuntu

USERFULLNAME="Live session user"

HOST=ubuntu


其它的部分也没看出有什么不对,难道是文件名有问题,6.06的脚本叫做capser
no security measure is worth anything if an attacker has physical access to the machine
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#6

帖子 skyx » 2007-01-16 10:41

蓝色部份为从6.06引导包解开取出的名为casper的脚本。

#!/bin/sh

# set -e

mountpoint=/cdrom

mkdir -p $mountpoint

overlay_method=unionfs
if [ "${DPKG_ARCH}" = "ia64" ] || [ "${DPKG_ARCH}" = "hppa" ] || [ "${DPKG_ARCH}" = "sparc" ]; then
overlay_method=devmapper
fi

USERNAME=ubuntu
USERFULLNAME="Ubuntu LiveCD user"
HOST=ubuntu

[ -f /etc/casper.conf ] && . /etc/casper.conf

export USERNAME USERFULLNAME HOST

casper_path() {
path=$1
if [ -e "$path/casper/filesystem.cloop" ]; then
echo "$path/casper/filesystem.cloop"
return 0
elif [ -e "$path/casper/filesystem.squashfs" ]; then
echo "$path/casper/filesystem.squashfs"
return 0
fi
return 1
}

subdevices() {
sysblock=$1
r=""
for dev in "${sysblock}" "${sysblock}"/*; do
if [ -e "${dev}/dev" ]; then
r="${r} ${dev}"
fi
done
echo ${r}
}

get_backing_device() {
case "$1" in
*.cloop)
echo $(setup_loop "$1" "cloop" "/sys/block/cloop*")
;;
*.squashfs)
echo $(setup_loop "$1" "loop" "/sys/block/loop*")
;;
*)
panic "Unrecognized casper filesystem: $1"
;;
esac
}

setup_cow() {
case "$1" in
unionfs)
setup_unionfs "$2" "$rootmnt"
;;
devmapper)
setup_devmapper "$2" "$rootmnt"
esac
}

sys2dev() {
sysdev=${1#/sys}
echo "/dev/$(udevinfo -q name -p ${sysdev} 2>/dev/null|| echo ${sysdev##*/})"
}

setup_loop() {
local fspath=$1
local module=$2
local pattern=$3

modprobe -Qb "$module"
udevplug -W

for loopdev in $pattern; do
if [ "$(cat $loopdev/size)" -eq 0 ]; then
dev=$(sys2dev "${loopdev}")
losetup "$dev" "$fspath"
echo "$dev"
return 0
fi
done
panic "No loop devices available"
}

get_fstype() {
local FSTYPE
local FSSIZE
eval $(fstype < $1)
if [ "$FSTYPE" != "unknown" ]; then
echo $FSTYPE
return 0
fi
/lib/udev/vol_id -t $1 2>/dev/null
}

setup_devmapper() {
backdev="$1"
rootmnt="$2"

modprobe -Qb dm-mod
COW_DEVICE=/dev/ram1
COW_NAME="casper-cow"

BACKING_FILE_SIZE=$(blockdev --getsize "$backdev")
MAX_COW_SIZE=$(blockdev --getsize "$COW_DEVICE")
CHUNK_SIZE=8 # sectors

if [ -z "$COW_SIZE" -o "$COW_SIZE" -gt "$MAX_COW_SIZE" ]; then
COW_SIZE=$MAX_COW_SIZE
fi

echo "0 $COW_SIZE linear $COW_DEVICE 0" | dmsetup create $COW_NAME

echo "0 $BACKING_FILE_SIZE snapshot $backdev /dev/mapper/$COW_NAME p $CHUNK_SIZE" | \
dmsetup create casper-snapshot
if [ "$(get_fstype $backdev)" = "unknown" ]; then
panic "Unknown file system type on $backdev"
fi
mount -t $(get_fstype "$backdev") /dev/mapper/casper-snapshot $rootmnt || panic "Can not mount /dev/mapper/casper/snapshot on $rootmnt"

mkdir -p "$rootmnt/rofs"
echo "0 $BACKING_FILE_SIZE linear $backdev 0" | dmsetup create casper-backing
mount -t $(get_fstype "$backdev") /dev/mapper/casper-backing "$rootmnt/rofs"
}

where_is_mounted() {
device=$1
if grep -q "^$device " /proc/mounts; then
grep "^$device " /proc/mounts | read d mountpoint rest
echo $mountpoint
return 0
fi
return 1
}

find_cow_device() {
for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop); do
for dev in $(subdevices "${sysblock}"); do
devname=$(sys2dev "${dev}")
if [ "$(/lib/udev/vol_id -l $devname 2>/dev/null)" = "casper-rw" ]; then
echo "$devname"
return
elif [ "$(get_fstype ${devname})" = "vfat" ]; then
mkdir -p /cow-backing
if where_is_mounted ${devname} > /dev/null; then
mount -o remount,rw ${devname} $(where_is_mounted ${devname}) || panic "Remounting failed"
mount -o bind $(where_is_mounted ${devname}) /cow-backing || panic "Cannot bind-mount"
else
mount -t $(get_fstype "${devname}") -o rw "${devname}" /cow-backing || panic "Cannot mount $devname on /cow-backing"
fi

if [ -e "/cow-backing/casper-rw" ]; then
echo $(setup_loop "/cow-backing/casper-rw" "loop" "/sys/block/loop*")
return 0
else
umount /cow-backing
fi
fi

done
done
return 1
}

setup_unionfs() {
backdev="$1"
rootmnt="$2"
modprobe -Qb unionfs
mkdir -p /cow

if grep -q persistent /proc/cmdline; then
i=0
# We love udev and the kernel!
while [ "$i" -lt 300 ]; do
cowdevice=$(find_cow_device)
if [ -b "$cowdevice" ]; then
mount -t $(get_fstype "$cowdevice") -o rw "$cowdevice" /cow || panic "Can not mount $cowdevice on /cow"
break
fi
sleep 5
# sleep 0.1
i=$(( $i + 1 ))
done
else
mount -t tmpfs tmpfs /cow
fi

mkdir -p /rofs
if [ "$(get_fstype $backdev)" = "unknown" ]; then
panic "Unknown file system type on $backdev"
fi
mount -t $(get_fstype "$backdev") -o ro "$backdev" /rofs || panic "Can not mount $backdev on /rofs"

mount -t unionfs -o dirs=/cow=rw:/rofs=ro unionfs "$rootmnt"
if grep -q show-cow /proc/cmdline; then
mkdir -p "$rootmnt/cow"
mount -o bind /cow "$rootmnt/cow"
fi
mkdir -p "$rootmnt/rofs"
mount -o bind /rofs "$rootmnt/rofs"
}

is_usb_device() {
sysfs_path="${1#/sys}"
if /lib/udev/path_id "${sysfs_path}" | grep -q "ID_PATH=usb"; then
return 0
fi
return 1
}

find_cd() {
mounted=
for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram); do
devname=$(sys2dev "${sysblock}")
for dev in $(subdevices "${sysblock}"); do
devname=$(sys2dev "${dev}")
case $(get_fstype "${devname}") in
vfat|iso9660|ntfs|etx3|udf|reiserfs)
mount -t $(get_fstype "${devname}") -o ro "${devname}" $mountpoint || continue
if casper_path $mountpoint; then
echo $(casper_path $mountpoint)
return
else
umount $mountpoint
fi
;;
esac
done
done
}
set_usplash_timeout() {
if [ -x /sbin/usplash_write ]; then
/sbin/usplash_write "TIMEOUT 120"
fi
}

mountroot() {
exec 6>&1
exec 7>&2
exec > casper.log
exec 2>&1

set_usplash_timeout
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/casper-premount"
run_scripts /scripts/casper-premount
[ "$quiet" != "y" ] && log_end_msg

# Needed here too because some things (*cough* udev *cough*)
# changes the timeout

set_usplash_timeout

for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13; do
live_image=$(find_cd)
if [ "${live_image}" ]; then
break
fi
sleep 1
done
if [ "$?" -gt 0 ]; then
panic "Unable to find a CD-ROM containing a live file system"
fi

setup_cow "$overlay_method" "$(get_backing_device $live_image)" "$rootmnt"

log_end_msg

maybe_break casper-bottom
[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/casper-bottom"

PATH=/root/usr/bin:/root/usr/sbin:/root/bin:/root/sbin:$PATH run_scripts /scripts/casper-bottom
[ "$quiet" != "y" ] && log_end_msg

exec 1>&6 6>&-
exec 2>&7 7>&-
cp casper.log "${rootmnt}/var/log/"
}






下面红色部份为gnix_oag



#!/bin/sh



# set -e



export PATH=/root/usr/bin:/root/usr/sbin:/root/bin:/root/sbin:/usr/bin:/usr/sbin:/bin:/sbin



#iso文件的的挂载点

mountpoint=/iso_cdrom

mkdir -p $mountpoint

mkdir -p /cdrom

find_wyj=edgy #要找的文件夹



#overlay_method=unionfs

#if [ "${DPKG_ARCH}" = "ia64" ] || [ "${DPKG_ARCH}" = "hppa" ] || [ "${DPKG_ARCH}" = "sparc" ]; then

# overlay_method=devmapper

#fi



#初始化用户名、用户全称、主机名

USERNAME=ubuntu

USERFULLNAME="Live session user"

HOST=ubuntu



[ -f /etc/casper.conf ] && . /etc/casper.conf



export USERNAME USERFULLNAME HOST



#验证 live cd 的映象

is_casper_path() {

path=$1

if [ -d "$path/casper" ]; then

if [ "$(echo $path/casper/*.cloop)" != "$path/casper/*.cloop" ] ||

[ "$(echo $path/casper/*.squashfs)" != "$path/casper/*.squashfs" ]; then

return 0

fi

fi

return 1

}



#得到全部磁盘分区的列表

subdevices() {

sysblock=$1

r=""

for dev in "${sysblock}" "${sysblock}"/*; do

if [ -e "${dev}/dev" ]; then

r="${r} ${dev}"

fi

done

echo ${r}

}



#获得环回(loop)设备

get_backing_device() {

case "$1" in

*.cloop)

echo $(setup_loop "$1" "cloop" "/sys/block/cloop*")

;;

*.squashfs)

echo $(setup_loop "$1" "loop" "/sys/block/loop*")

;;

*)

panic "Unrecognized casper filesystem: $1"

;;

esac

}



match_files_in_dir() {

# Does any files match pattern $1 ?



local pattern="$1"

if [ "$(echo $pattern)" != "$pattern" ]; then

return 0

fi

return 1

}



mount_images_in_directory() {

directory="$1"

rootmnt="$2"

if match_files_in_dir "$directory/casper/*.cloop"; then

# Let's hope there's just one matching *.cloop... FIXME

setup_devmapper $(get_backing_device "$directory/casper/*.cloop") "$rootmnt"

elif match_files_in_dir "$directory/casper/*.squashfs"; then

setup_unionfs "$directory/casper" "$rootmnt"

else

:

fi

}



#生成/dev的设备名

sys2dev() {

sysdev=${1#/sys}

echo "/dev/$(udevinfo -q name -p ${sysdev} 2>/dev/null|| echo ${sysdev##*/})"

}



#安装文件到环回设备

setup_loop() {

local fspath=$1

local module=$2

local pattern=$3



modprobe -Qb "$module"

udevsettle



for loopdev in $pattern; do

if [ "$(cat $loopdev/size)" -eq 0 ]; then

dev=$(sys2dev "${loopdev}")

losetup "$dev" "$fspath"

echo "$dev"

return 0

fi

done

panic "No loop devices available"

}



#获得文件系统的类别

get_fstype() {

local FSTYPE

local FSSIZE

eval $(fstype < $1)

if [ "$FSTYPE" != "unknown" ]; then

echo $FSTYPE

return 0

fi

/lib/udev/vol_id -t $1 2>/dev/null

}



#安装磁盘映象(可写入的)

setup_devmapper() {

backdev="$1"

rootmnt="$2"



modprobe -Qb dm-mod

COW_DEVICE=/dev/ram1

COW_NAME="casper-cow"



BACKING_FILE_SIZE=$(blockdev --getsize "$backdev")

MAX_COW_SIZE=$(blockdev --getsize "$COW_DEVICE")

CHUNK_SIZE=8 # sectors



if [ -z "$COW_SIZE" -o "$COW_SIZE" -gt "$MAX_COW_SIZE" ]; then

COW_SIZE=$MAX_COW_SIZE

fi



echo "0 $COW_SIZE linear $COW_DEVICE 0" | dmsetup create $COW_NAME



echo "0 $BACKING_FILE_SIZE snapshot $backdev /dev/mapper/$COW_NAME p $CHUNK_SIZE" | \

dmsetup create casper-snapshot

if [ "$(get_fstype $backdev)" = "unknown" ]; then

panic "Unknown file system type on $backdev"

fi

mount -t $(get_fstype "$backdev") /dev/mapper/casper-snapshot $rootmnt || panic "Can not mount /dev/mapper/casper/snapshot on $rootmnt"



mkdir -p "$rootmnt/rofs"

echo "0 $BACKING_FILE_SIZE linear $backdev 0" | dmsetup create casper-backing

mount -t $(get_fstype "$backdev") /dev/mapper/casper-backing "$rootmnt/rofs"

}



#验证及获取挂载点的位置

where_is_mounted() {

device=$1

if grep -q "^$device " /proc/mounts; then

grep "^$device " /proc/mounts | read d mountpoint rest

echo $mountpoint

return 0

fi

return 1

}



#查找可写入的 cow 设备

find_cow_device() {

for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop); do

for dev in $(subdevices "${sysblock}"); do

devname=$(sys2dev "${dev}")

if [ "$(/lib/udev/vol_id -l $devname 2>/dev/null)" = "casper-rw" ]; then

echo "$devname"

return

elif [ "$(get_fstype ${devname})" = "vfat" ]; then

mkdir -p /cow-backing

if where_is_mounted ${devname} > /dev/null; then

mount -o remount,rw ${devname} $(where_is_mounted ${devname}) || panic "Remounting failed"

mount -o bind $(where_is_mounted ${devname}) /cow-backing || panic "Cannot bind-mount"

else

mount -t $(get_fstype "${devname}") -o rw "${devname}" /cow-backing || panic "Cannot mount $devname on /cow-backing"

fi



if [ -e "/cow-backing/casper-rw" ]; then

echo $(setup_loop "/cow-backing/casper-rw" "loop" "/sys/block/loop*")

return 0

else

umount /cow-backing

fi

fi



done

done

return 1

}



#安装联合文件系统 (可写入的

setup_unionfs() {

image_directory="$1"

rootmnt="$2"

modprobe -Qb unionfs



# run-init can't deal with this, but we're going to move all of these

# away before it runs anyway.

croot="/casper"



# Let's just mount the read-only file systems first

mkdir -p "${croot}"

for image in "${image_directory}"/*.squashfs; do

imagename=$(basename "${image}")

backdev=$(get_backing_device "$image")

fstype=$(get_fstype "${backdev}")

if [ "${fstype}" = "unknown" ]; then

panic "Unknown file system type on ${backdev} (${image})"

fi

mkdir -p "${croot}/${imagename}"

mount -t "${fstype}" -o ro "${backdev}" "${croot}/${imagename}" || panic "Can not mount $backdev ($image) on ${croot}/${imagename}"

done



rofsstring=""

for dir in $(mount -t squashfs | cut -d\ -f 3); do

rofsstring="$dir=ro:$rofsstring"

done

rofsstring=${rofsstring%:}



if [ "$ubuntu_fs" ] ; then

cow=$ubuntu_fs

else

mkdir -p /cow

mount -t tmpfs tmpfs /cow

cow=/cow

fi



mount -t unionfs -o dirs=$cow=rw:$rofsstring unionfs "$rootmnt"



for d in $(mount -t squashfs | cut -d\ -f 3); do

mkdir -p "${rootmnt}/casper/${d##*/}"

mount -o move "${d}" "${rootmnt}/casper/${d##*/}"

done

if [ "$ubuntu_fs" ] ; then

mkdir -p "$rootmnt/ubuntu.fs"

mount -o bind $cow "$rootmnt/ubuntu.fs"

fi

mkdir -p "$rootmnt/iso_cdrom"

mount -o bind $mountpoint "$rootmnt/iso_cdrom"

}



#验证是否为usb磁盘

is_usb_device() {

sysfs_path="${1#/sys}"

if /lib/udev/path_id "${sysfs_path}" | grep -q "ID_PATH=(usb|pci-[^-]*-usb)"; then

return 0

fi

return 1

}



#生成/fstab文件

make_fstab() {

#找所的硬盘及分区

cat /proc/partitions | tr -s "[\ ]" | cut -d\ -f5 | tr "[\n]" "[ ]" > /dev_tmp

#开始生成fstab

msfscount=98 #ms文件系统计数值: 98对应B

for dev_name in $(cat /dev_tmp) ; do

fstype=$(get_fstype "/dev/${dev_name}")

case "$fstype" in

reiserfs|minix|xfs|jfs|ext3|ext2|swap|ntfs|vfat)

get_mountpoint

mkdir -p ${getmountpoint}

get_mountoptions

echo "/dev/${dev_name} ${getmountpoint} ${fstype} ${getmountoptions} 0 0 " >> /fstab

;;

esac

done

#找所有的光驱

for sysblock in $(echo /sys/block/* | tr ' ' '\n' | grep -v loop | grep -v ram); do

hd_dev=$(echo "$(udevinfo -q name -p ${sysblock#/sys} 2>/dev/null || echo ${sysblock##*/})")

if /lib/udev/cdrom_id /dev/${hd_dev} > /dev/null; then

echo "/dev/${hd_dev} /media/${hd_dev} auto noauto,user 0 0 " >> /fstab

mkdir -p /media/${hd_dev}

fi

done

rm /dev_tmp

}



#生成挂载点

get_mountpoint(){

getmountpoint=

case "$fstype" in

ntfs*|vfat|msdos)

msfscount=$(expr $msfscount + 1)

getmountpoint=/media/`echo -e -n "\\x$(printf %x $msfscount)"`_win ;;

swap) getmountpoint="none" ;;

*) getmountpoint="/media/${dev_name}" ;;

esac

}



#生成挂载选项

get_mountoptions(){

getmountoptions=



case "$fstype" in

vfat) getmountoptions="umask=000,shortname=winnt,user,exec,utf8," ;;

msdos) getmountoptions="umask=000,user,exec,utf8" ;;

swap) getmountoptions="defaults" ;;

ntfs) getmountoptions="umask=000,user,exec,utf8";;

*) getmountoptions="user,exec";;

esac

}



#搜索磁盘,找相关文件

find_file() {

modprobe -Qb loop

while read hd_dev hd_mount_point hd_fstype hd_mount_options dump fcsk ; do

case "$hd_fstype" in

reiserfs|minix|xfs|jfs|ext3|ext2|ntfs|vfat)

modprobe -Qb "$hd_fstype"

mkdir -p /"${hd_mount_point##*/}"

mount -t ${hd_fstype} -o "${hd_mount_options##*user,}" ${hd_dev} /"${hd_mount_point##*/}" || continue

find_swap_fs

if [ ! -d /"${hd_mount_point##*/}/$find_wyj" ];then

umount /"${hd_mount_point##*/}"

fi

find_iso

find_ubuntu_fs

if [ "$findiso" -a "$findubuntufs" -a "$findswapfs" ];then #三个文件都没有在这个分区上,就卸载它

umount /"${hd_mount_point##*/}"

continue

fi

if [ "$iso_cdrom" -a "$ubuntu_fs" -a "$swap_fs" ];then #三个文件都找到,就返回

return

fi

;;

esac

done

}



#找live cd iso 映象

find_iso() {

if [ -z "$iso_cdrom" ];then

for iso in $(echo /"${hd_mount_point##*/}"/$find_wyj/*.[iI][sS][oO] ) ; do

mount -t iso9660 -o loop $iso $mountpoint || continue

if is_casper_path $mountpoint; then

iso_cdrom=$mountpoint

findiso=

return

else

umount $mountpoint

fi

done

fi

findiso=no

}



#找可写入的ubuntu.fs文件系统

find_ubuntu_fs() {

if [ -z "$ubuntu_fs" ];then

if [ -f /"${hd_mount_point##*/}"/$find_wyj/ubuntu.fs ]; then

ubuntufstype=$(get_fstype /"${hd_mount_point##*/}"/$find_wyj/ubuntu.fs )

mkdir -p /ubuntu_fs

if mount -t $ubuntufstype -o rw,loop /"${hd_mount_point##*/}"/$find_wyj/ubuntu.fs /ubuntu_fs ; then

ubuntu_fs=/ubuntu_fs

findubuntufs=

return

fi

fi

case $hd_fstype in

reiserfs|minix|xfs|jfs|ext3|ext2)

if [ -d /"${hd_mount_point##*/}"/$find_wyj/ubuntu.fs ]; then

ubuntu_fs=/"${hd_mount_point##*/}"/$find_wyj/ubuntu.fs

findubuntufs=

return

fi

;;

esac

fi

findubuntufs=no

}



#找 swap 文件

find_swap_fs() {

if [ -z "$swap_fs" ];then

if [ -f /"${hd_mount_point##*/}"/swap.fs ]; then

swap_fs=$hd_mount_point

findswapfs=

return

fi

fi

findswapfs=no

}



#设定usplash 延时

set_usplash_timeout() {

if [ -x /sbin/usplash_write ]; then

/sbin/usplash_write "TIMEOUT 120"

fi

}



#挂载 root 文件系统

mountroot() {

exec 6>&1

exec 7>&2

exec > casper.log

exec 2>&1



set_usplash_timeout

[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/casper-premount"

run_scripts /scripts/casper-premount

[ "$quiet" != "y" ] && log_end_msg



# Needed here too because some things (*cough* udev *cough*)

# changes the timeout



set_usplash_timeout



for i in 0 1 2 3 4 5 6 ; do

rm /fstab

make_fstab



find_file < /fstab

if [ "${iso_cdrom}" ]; then

break

fi

sleep 2

done

if [ "$?" -gt 0 ]; then

panic "Unable to find a medium containing a live file system"

fi



mount_images_in_directory "$iso_cdrom" "$rootmnt"

log_end_msg



#配置系统

if [ ! -e $rootmnt/etc/gnix.oag@gmail.com ];then

touch $rootmnt/etc/gnix.oag@gmail.com



maybe_break casper-bottom

[ "$quiet" != "y" ] && log_begin_msg "Running /scripts/casper-bottom"



run_scripts /scripts/casper-bottom



mv /media/* $rootmnt/media/

#配置 swap 文件

if [ "$swap_fs" ]; then

mount -o bind "${swap_fs##*/}" $rootmnt$swap_fs

cat >> /fstab <<EOF

$swap_fs/swap.fs swap swap defaults 0 0

EOF

fi



cat /fstab >> $rootmnt/etc/fstab



#修正时间相差8小时

chroot /root sed -i -e "s/^UTC=.*\$/UTC=no/" /etc/default/rcS



#不显示桌面上的分区图标

chroot /root sudo -u "$USERNAME" gconftool-2 -s -t bool /apps/nautilus/desktop/volumes_visible false

[ "$quiet" != "y" ] && log_end_msg

fi

exec 1>&6 6>&-

exec 2>&7 7>&-

cp casper.log "${rootmnt}/var/log/"

}



no security measure is worth anything if an attacker has physical access to the machine
dayfly
帖子: 7
注册时间: 2007-01-16 16:08

#7

帖子 dayfly » 2007-01-16 17:16

3q
回复