一键安装linux (附带各种命令,登录欢迎界面,用户登录模块。)
2011-09-04 16:00
375 查看
根据前几天的整合,我们最终写好了一键制作Linux的脚本。这次真的是一键了,附带了常用的命令,以及欢迎界面,外加提示符等等。明天加入网络模块,让其能够上网!宿主机:RedhatEnterprise5(2.6.18)目标机器:256内存,8G硬盘。#!/bin/bash#:Title:All_Mini_Linux.sh#:Synopsis:#:DateTime:2011-08-0412:33:02#:Version:0.2#:Author:weiyan#:Options:##read-p"Thetargetdisk:"DSKiffdisk-l$DSK|grep"^/dev"&>/dev/null;thenfdisk-l$DSK|grep"^/dev"PARTS=`fdisk-l$DSK|grep"^/dev"|awk'{print$1}'`forIin$PARTS;doifmount|grep"$I"&>/dev/null;thenmount|grep"$I"elseecho"$Iisnotmounted."fidonefiSPART(){read-p"Warning!!!!!Nextyoudoitwillwipeyourdisk!!!!Continue(y/N)?"CHOICEcase$CHOICEiny|Y)forIin$PARTS;doifmount|grep"$I"&>/dev/null;thenfuser-km$Iumount$Ifidoneddif=/dev/zeroof=$DSKbs=512count=1&>/dev/nullecho'np1+50Mnp2+512Mnp3+256Mt382w'|fdisk$DSK&>/dev/nullsleep1mke2fs-j${DSK}1&>/dev/nullmke2fs-j${DSK}2&>/dev/nullmkswap${DSK}3&>/dev/nullreturn0;;n|N)return1;;*)return2;;esac}SPART[$?-eq0]&&echo"TheDiskwipesuccess!!!!!!!"||echo"Failure"##==============2========================functionGUAZAI{[-d/mnt/boot]||mkdir-p/mnt/bootumount/mnt/boot&>/dev/nullmount$1/mnt/boot[-d/mnt/sysroot]||mkdir-p/mnt/bootumount/mnt/sysroot&>/dev/nullmount$2/mnt/sysroot}GUAZAI${DSK}1${DSK}2##=============3=========================#firstblood!rootfs$1=/mnt/sysrootfunctionROOTFS{if[-d$1];thenifmount|grep"$1"&>/dev/null;thencd$1chmod1777tmp/#create/etc/inittabcat>>$1/etc/inittab<<EOFid:3:initdefault:si::sysinit:/etc/rc.d/rc.sysinitl0:0:wait:/etc/rc.d/rc.shutdownl1:1:wait:/sbin/init-t1Sl3:3:wait:/sbin/init-t13#mingetty1:2345:respawn:/sbin/mingettytty12:2345:respawn:/sbin/mingettytty23:2345:respawn:/sbin/mingettytty34:2345:respawn:/sbin/mingettytty45:2345:respawn:/sbin/mingettytty56:2345:respawn:/sbin/mingettytty6EOF#create/etc/rc.d/rc.shutdowncat>>$1/etc/rc.d/rc.shutdown<<EOF#!/bin/bashsyncsleep1syncsleep1umount/dev/sda1umount/dev/sda2exec/sbin/halt-pEOF#createrc.sysinitcat>>$1/etc/rc.d/rc.sysinit<<EOF#!/bin/bashecho-e"\t\tWelcometo\033[031;1mLittle\033[0mLinux..."mount-n-oremount,rw/mount-n-a#setHOSTNAME[-f/etc/sysconfig/network]&&source/etc/sysconfig/network[-z$HOSTNAME]&&HOSTNAME=localhostecho$HOSTNAME>/proc/sys/kernel/hostnameEOF#create/etc/sysconfig/networkcat>>$1/etc/sysconfig/network<<EOFHOSTNAME=weiyanEOF#create/etc/sysctl.confcat>>$1/etc/sysctl.conf<<EOFEOF#create/etc/issuecat>>$1/etc/issue<<EOFWelcometoLittle.Linux.orgUsername:rootPassword:NiCai?EOF#create/root/.bash_profilecat>>$1/root/.bash_profile<<EOFPS1='[\u@\h\W]\OK,万事搞定![/code]
EOFchmod+xetc/rc.d/rc.shutdown#createfstabcat>>$1/etc/fstab<<EOF/dev/sda2/ext3defaults00/dev/sda1/bootext3defaults00sysfs/syssysfsdefaults00proc/procprocdefaults00EOFelseread-p"Error,the$1stillmount!Contiune(y|N)?"MOTcase$MOTin*)echo"Exit......"return5;;esacfifi}ROOTFS/mnt/sysroot##====================4========================#copylibtoyoursys.$1=COMMAND$2=/mnt/sysrootfunctionCOPYLIB{#copycommandifwhich$1&>/dev/null;thenAA=`which$1|tail-1|awk'{print$1}'`cp"$AA"$2"$AA"elseecho"$1isnotexist"fi#copylibLIBPATH=`echo$LIB|sed's@\(.*\)/[^[:space:]]\{1,\}@\1@g'`[-d${2}$LIBPATH]||mkdir${2}$LIBPATH[!-e$2/$LIB]&&cp-f$LIB${2}$LIBPATHdoneecho"$1hascpdone."}echo"=========================================================="#zhijiejiaruminglingCOPYLIB$CMDD/mnt/sysrootdone#lnbash&sh!!!!!ln-svbashsh&>/dev/null#copylib/libnss*.withnsswitchcp/usr/lib/libnss3.so/mnt/sysroot/usr/lib/cp/usr/lib/libnssckbi.so/mnt/sysroot/usr/lib/cp/usr/lib/libnssutil3.so/mnt/sysroot/usr/lib/cp-d/usr/lib/libnss_compat.so/mnt/sysroot/usr/lib/cp-d/usr/lib/libnss_files.so/mnt/sysroot/usr/lib/cp-d/lib/libnss_files*/mnt/sysroot/lib/cp-d/lib/libnss_compat*/mnt/sysroot/lib/##copylogin!cd/mnt/sysroot/bin/wget[code]当所有都运行完之后~ftp://192.168.0.254/pub/login&>/dev/nullchmod+xlogincp/lib/libcrypt.so.1/mnt/sysroot/lib/cp/lib/libm.so.6/mnt/sysroot/lib/cd~##copypasswd....nsswitch.confcp/etc/{passwd,shadow,group,gshadow}/mnt/sysroot/etc/cp/etc/nsswitch.conf/mnt/sysroot/etc/#########untilxunhuanletuserinput############################echo-e"PleaseinputCOMMANDwith\033[31mbash\033[0mand\033[31minit\033[0m!!!!!"#read-p"COMMANDyouwant?(Quitfor'q'):"CMD1#until[$CMD1=='q'];do#COPYLIB$CMD1/mnt/sysroot#read-p"WhichCOMMANDyouwantuse?(Quitfor'q'):"CMD1#done###############################################################echo"=========================================================="##==========================5===================================#$1=/mnt/sysrootfunctionYDFQ{TMPDIR=`mktemp-d/tmp/little.XX`cd$TMPDIRzcat/boot/initrd-`uname-r`.img|cpio-id&>/dev/null##zhankaibingsonggeised-i's@^echoScanningandconfiguringdmraidsupporteddevices@#&@g'initsed-i's@^echoScanninglogicalvolumes@#&@g'initsed-i's@^lvmvgscan--ignorelockingfailure@#&@g'initsed-i's@^echoActivatinglogicalvolumes@#&@g'initsed-i's@^lvmvgchange-ay--ignorelockingfailurevol0@#&@g'initsed-i's@^resumeLABEL=SWAP-sda3@#&@g'initsed-i"s@\(mkrootdev.*\)/.*@\1sda2@"initfind.|cpio-Hnewc-o--quiet|gzip-9>/mnt/boot/initrd.gzcp/boot/vmlinuz-`uname-r`/mnt/boot/vmlinuz}YDFQ/mnt/sysroot##==============================6================================##$1=/dev/sdc$2=/mnt/boot$3=kernel'name$4initrd'snamefunctionGRUB{if[`basename$2`==boot];thengrub-install--root-directory=/mnt$1&>/dev/nullcat>>$2/grub/grub.conf<<EOFdefault=0timeout=10titleLittleLinuxroot(hd0,0)kernel/${3}roroot=/dev/sda2quietinitrd/${4}EOFelseecho"It'snotboot!Exit&Pleasesetitagain!"fi}GRUB$DSK/mnt/bootvmlinuzinitrd.gzsyncsyncsyncsyncsyncsleep10echo"Congratulation!YourMiniLinuxisinstallOK!"
相关文章推荐
- 一键安装linux (附带各种命令,登录欢迎界面,用户登录模块。)
- 一键安装linux (附带各种命令,登录欢迎界面,用户登录模块。)
- xp中 “控制面板”->“用户帐户”->“更改用户登录注销方式” 出现 一个最近安装的程序已停用欢迎界面和快速用户切换
- 打造自己的专属linux(三):添加网络模块,登录界面,开关机
- Linux 其他常见命令 挂载命令 + 用户登录查看
- nologin命令_Linux nologin 命令用法详解:拒绝用户登录系统
- Linux笔记(su切换用户,sudo命令*,限制root远程登录)
- 【Linux学习笔记】16:用户登录查看命令
- Linux,Unix各种版本的操作系统在线安装软件命令
- Linux清除用户登录记录和命令历史方法
- linux查看用户登录时间以及命令历史
- Linux下用于查看系统当前登录用户信息 w命令
- Linux清除用户登录记录和命令历史方法
- linux面试请给出linux中查看系统已经登录用户的命令
- Linux vsftpd编译安装和配置允许本地用户登录FTP
- LINUX用户登录后精确命令记录
- Linux常用命令(文件处理、文件搜索、帮助,压缩与解压、关机和重启、挂载、用户登录查看等等命令)
- Linux学习第三十篇--查看正在登录用户和同其他用户交流的命令
- Trac安装用户注册及登录插件模块
- Linux清除用户登录记录和命令历史方法