该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#(度娘的排版要是不给力就悲催了)
#livecd安装脚本,主要使用cp安装,好处就是在livecd上的修改可以带到安装后
#由于嵌套很少于是不使用缩进了
#!/bin/bash
#脚本和fstab、fstab2(两个一样的fstab文件,只有注释或只有注释和tmpfs)放在/install下才可正常工作
cd /install
dialog --msgbox "欢迎使用安装脚本!" 10 22
dialog --msgbox "在开始安装之前,请先使用GParted、fdisk、cfdisk、parted等工具分区、格式化。安装程序只进行挂载、复制文件和配置" 10 22
dialog --yesno "继续安装?" 5 22
if [ $? = 1 ]
then
exit
fi
dialog --title "分区信息——确认安装到的分区" --msgbox "`fdisk -l`" 40 60
dialog --title "选择模式" --yesno "是否自定/etc/fstab?(否则将只指定/) " 10 30
if [ $? = 0 ]
then
dialog --title "选择编辑器" --menu "" 20 50 5 gedit "图形界面编辑器,简单" nano "字符界面编辑器,简单" vi "高级" 2>./it
RLP1="`cat ./it`"
$RLP1 ./fstab
dialog --title "选择分区" --inputbox "选择在fstab中指定的/分区(/dev/sdX)" 10 20 2>./it
RLP1="`cat ./it`"
RooT=$RLP1
else
dialog --title "选择分区" --inputbox "选择/分区(/dev/sdX)" 10 20 2>./it
RLP2="`cat ./it`"
RooT=$RLP2
dialog --menu "你的/分区格式?" 20 50 5 ext4 "" ext3 "" xfs "" "其他" "" 2>./it
RLP1="`cat ./it`"
if [ $RLP1 = "其他" ]
then
dialog --inputbox "你的/分区格式?(fstab中的)" 10 20 2>./it
RLP1="`cat ./it`"
fi
cp ./fstab2 ./fstab
echo "$RLP2 / $RLP1 defaults 0 0" >> ./fstab
fi
echo "挂载/分区:$RooT"
mount $RooT /target
echo "复制文件"
echo "复制/usr"
cp -rvPp /usr/ /target/usr/
echo "复制/var"
cp -rvPp /var/ /target/var/
echo "复制/etc"
cp -rvPp /etc/ /target/etc/
echo "复制/etc/fstab"
cp -v ./fstab /target/etc/
echo "复制/lib"
cp -rvPp /lib/ /target/lib/
echo "复制/bin"
cp -rvPp /bin/ /target/bin/
echo "复制/sbin"
cp -rvPp /sbin/ /target/sbin/
echo "复制/opt"
cp -rvPp /opt/ /target/opt/
echo "复制/boot"
cp -rvPp /boot/ /target/boot/
echo "复制/home"
cp -rvPp /home/ /target/home/
echo "复制/selinux"
cp -rvPp /selinux/ /target/selinux/
echo "复制/root"
cp -rvPp /root/ /target/root/
echo "复制/srv"
cp -rvPp /srv/ /target/srv/
echo "复制/下的内核符号链接"
cp -vP /vmlinuz /target/
cp -vP /initrd.img /target/
echo "创建必要的目录"
mkdir -v /target/mnt
mkdir -v /target/tmp
mkdir -v /target/run
mkdir -v /target/proc
mkdir -v /target/sys
mkdir -v /target/dev
mkdir -v /target/cdrom
mkdir -v /target/media
echo "进行chroot之前准备工作"
mount --bind /dev /target/dev
mount --bind /proc /target/proc
mount --bind /sys /target/sys
dialog --yesno "复制文件已完成,是否安装Grub2启动引导器?" 10 20
if [ $? = 0 ]
then
dialog --inputbox "输入安装启动引导器的设备(一般硬盘是/dev/sda)" 10 25 2>./it
Gd="`cat ./it`"
chroot /target/ grub-install $Gd
chroot /target/ update-grub
echo "Grub安装完成"
fi
echo "设定您的密码(默认用户名ubuntu)"
echo "密码在屏幕上不会有任何显示,只管输。"
chroot /target/ passwd ubuntu
dialog --yesno "是否chroot进入之进行配置?(高级)" 10 20
if [ $? = 0 ]
then
echo "现在是chroot状态,exit退出"
chroot /target /bin/bash
fi
echo "回滚chroot之前的准备工作"
umount /target/dev
umount /target/proc
umount /target/sys
echo "卸载$RooT"
umount /target
echo "安装完成"