自制linux系统 可以参考 LFS文档
分区并创建文件系统
fdisk /dev/sdb
分两个必要的分区
/dev/sdb1对应/boot /dev/sdb2对应根 /
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
挂载boot
mkdir /mnt/boot 子目录必须为boot
mount /dev/sdb1 /mnt/boot
安装grub
grub-install --root-directory=/mnt /dev/sdb
恢复内核和initramfs文件
cp /boot/vmlinuz-2.6.32-642.el6.x86_64 /mnt/boot/
cp /boot/initramfs-2.6.32-642.el6.x86_64.img /mnt/boot
建立grub.conf
vim /mnt/boot/grub.conf
title wanglinux
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2 selinux=0 init=/bin/bash
initrd /initramfs-2.6.32-642.el6.x86_64.img
chroot /mnt/sysroot
创建一级目录
mkdir /mnt/sysroot
mount /dev/sdb2 /mnt/sysroot
mkdir –pv /mnt/sysroot/{etc,lib,lib64,bin,sbin,tmp,var,usr,sys,proc,opt,home,root,boot,dev,mnt,media}
复制bash和相关库文件
复制相关命令及相关库文件
如:ifconfig,insmod,ping,mount,ls,cat,df,lsblk,blkid等
**************************************************************************
自定义linux 系统
在centos6上添加一块硬盘
lsblk
fdisk /dev/sdb //建立分区
boot //200M
/ //分配给根
格式化
mkfs.ext4 /deb/sdb2
mkfs.ext4 /deb/sdb2
mount /dev/sdb1 /mnt/boot
grub-install --root-directory=/mnt /dev/sdb
ls /mnt/boot/grub
cp /boot/vmlinuxz-2.6.32-754.el6.x86_64 /mnt/boot /
cp /boot/initramfs-2.6.32-754.el6.x86_64.img /mnt/boot /
建立grub.conf
vim /mnt/boot/grub.conf
title wanglinux
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2 selinux=0 init=/bin/bash
initrd /initramfs-2.6.32-642.el6.x86_64.img
mkdir /mnt/root
mount /dev/sdb2 /mnt/root ///建立操作系统的根
for dir in /* ; do mkdir /mnt/root$dir ; done
ls /mnt/root
复制bash和相关库文件
复制相关命令及相关库文件
如:ifconfig,insmod,ping,mount,ls,cat,df,lsblk,blkid等
cat copycmd.sh 循环复制文件
#!/bin/bash
ch_root="/mnt/root"
[ ! -d $ch_root ] && mkdir $ch_root
bincopy() { if which $1 &>/dev/null; then
local cmd_path=`which --skip-alias $1`
local bin_dir=`dirname $cmd_path`
[ -d ${ch_root}${bin_dir} ] || mkdir -p ${ch_root}${bin_dir}
[ -f ${ch_root}${cmd_path} ] || cp $cmd_path ${ch_root}${bin_dir}
retyrn 0
else
echo "Command not found."
return 1
fi
}
libcopy() {
local lib_list$(ldd `which --skip-alias $1`| grep -Eo '/[^[:space:]]+')
for loop in $lib_list;do
local lib_dir=`dirname $loop`
[ -d ${ch_root}${lib_dir} ] || mkdir -p ${ch_root}${lib_dir}
[ -f ${ch_root}${loop} ] || cp $loop ${ch_root}${lib_dir}
done
}
read -p "please input a commmand: " command
while [ "$command" != "quit" ];do
if bincopy $command : then
libcopy $command
fi
read -p "please input a command or quit; "command
done
/
使 开机就拥有网络功能
vim /sbin/init
/bin/bash
insmod /lib/e1000.ko
ifconfig eth0 1.1.1.1/24
/