歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> bash自動化 定制Linux屬於自己的CentOS 系統

bash自動化 定制Linux屬於自己的CentOS 系統

日期:2017/2/28 14:34:21   编辑:Linux教程

bash自動化 定制Linux屬於自己的CentOS 系統,直接上圖

1、首先在宿主機創建目錄,/mnt/boot /mnt/sysroot,格式化磁盤將其掛載

1、相對應的函數:

mkdevice () {

dd if=/dev/zero of=$1 bs=512 count=1 &> /dev/null

[ $? -ne 0 ] && return 67

echo '

n

p

1

+500M

n

p

2

+9G

w' | fdisk $1 &> /dev/null

[ $? -ne 0 ] && return 68

sync

sleep 2

mkfs.ext4 ${1}1 &> /dev/null

PAPT1=$?

mkfs.ext4 ${1}2 &> /dev/null

PAPT2=$?

[ $PAPT1 -ne 0 -o $PAPT2 -ne 0 ] && return 69

}


umountall () {

for PAPT in `fdisk -l $1 | grep -o "${1}[0-9]\{1,\}"`; do

fuser -km $PAPT &> /dev/null

umount $PAPT &> /dev/null

done

}


mountall () {

[ -d $BOOT ] || mkdir -p $BOOT

[ -d $SYSROOT ] || mkdir -p $SYSROOT

mount ${1}1 $BOOT

mount ${1}2 $SYSROOT

}


2、安裝grub程序,我們這裡是安裝到/mnt/boot

2、相對應的函數:

instgrub () {

GRUBROOT=`dirname $BOOT`

grub-install --root-directory=$GRUBROOT $1

}


3、創建系統所需的目錄

3與其對應的函數

mkrootfs () {

mkdir -p $SYSROOT/{proc,boot,sys,dev,tmp,lib,lib64,bin,sbin,root,home,opt,mnt,media,misc} &> /dev/null

mkdir -p $SYSROOT/usr{share/{man,doc},bin,sbin,local,src,lib,lib64} &> /dev/null

mkdir -p $SYSROOT/var/{log,run,lock,spool,tmp} &> /dev/null

mkdir -p $SYSROOT/lib/{modules,module} &> /dev/null

mkdir -p $SYSROOT/lib64/{modues,module} &> /dev/null

cp /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/e1000/e1000.ko $SYSROOT/lib/modules/

cp /boot/vmlinuz-2.6.32-431.el6.x86_64 $BOOT/vmlinuz

cp /boot/initramfs-2.6.32-431.el6.x86_64.img $BOOT/initramfs.img

echo -e "default=0 \ntimeout=5 \ntitle MyCentos root (hd0,0) \nkernel /vmlinuz ro root=/dev/sda2 quiet selinux=0 init=/sbin/init

initrd /initramfs.img " > $BOOT/grub/grub.conf

touch $SYSROOT/sbin/init && cat /root/init > $SYSROOT/sbin/init && chmod +x $SYSROOT/sbin/init

}


4復制kernel 到目標主機

4、與其對應的函數

mkrootfs () {

mkdir -p $SYSROOT/{proc,boot,sys,dev,tmp,lib,lib64,bin,sbin,root,home,opt,mnt,media,misc} &> /dev/null

mkdir -p $SYSROOT/usr{share/{man,doc},bin,sbin,local,src,lib,lib64} &> /dev/null

mkdir -p $SYSROOT/var/{log,run,lock,spool,tmp} &> /dev/null

mkdir -p $SYSROOT/lib/{modules,module} &> /dev/null

mkdir -p $SYSROOT/lib64/{modues,module} &> /dev/null

cp /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/e1000/e1000.ko $SYSROOT/lib/modules/

cp /boot/vmlinuz-2.6.32-431.el6.x86_64 $BOOT/vmlinuz

cp /boot/initramfs-2.6.32-431.el6.x86_64.img $BOOT/initramfs.img

echo -e "default=0 \ntimeout=5 \ntitle MyCentos root (hd0,0) \nkernel /vmlinuz ro root=/dev/sda2 quiet selinux=0 init=/sbin/init

initrd /initramfs.img " > $BOOT/grub/grub.conf

touch $SYSROOT/sbin/init && cat /root/init > $SYSROOT/sbin/init && chmod +x $SYSROOT/sbin/init

}

Copyright © Linux教程網 All Rights Reserved