您的位置:首页 > 运维架构 > Linux

一键安装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]\
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/wgetftp://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!"
[code]当所有都运行完之后~OK,万事搞定!
[/code]
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息