初试_自制linux系统

自制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

/

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值