linux系统后面把$改成,自制linux系统

CentOS6.10自制LINUX系统(vmware环境)

1、准备一块干净的新磁盘(vmware)

d8a4c794b89c30e96023978b79296049.png

2、扫描磁盘scandisk

echo - - - > /sys/class/scsi_host/host0/scan

echo - - - > /sys/class/scsi_host/host1/scan

echo - - - > /sys/class/scsi_host/host2/scan

lsblk查看磁盘是否添加成功:

3278aa61f0cf509d9f1b5c1507642597.png

3、创建磁盘分区

使用fdisk /dev/sdb创建2个分区,一个当/(20G),一个当/boot(1G),分区后的结果如下:

163a3c58fbaac40e1624ec8e5a9bfb83.png

4、格式化文件系统mkfs.ext4

mkfs.ext4 /dev/sdb1

mkfs.ext4 /dev/sdb2

使用blkid命令查看文件系统类型是否正确,如下图:

ef0a9567a6c0494cb9d3b8c30d698c6b.png

5、创建新磁盘的boot挂载点

mkdir /mnt/boot

6、mount /dev/sdb1 /mnt/boot/

sdb1:换到其它系统时,就变成sda1,即/

7、安装grub

grub-install --root-directory=/mnt/ /dev/sdb

--root-directory=/mnt/ :指定系统的根,必须是boot文件夹的上一级目录

ls /mnt/boot/grub/ 查看是否生成grub的1、1.5和2阶段的文件,如下图:

13cee0a7eeafffe2556b15d00b376be3.png

8、同步grub信息到磁盘

sync 为确保可靠同步,可以多软几次sync

9、拷贝原磁盘中的vmlinuz和initramfs到/mnt/boot/

cp /boot/vmlinuz-2.6.32-754.el6.x86_64 /boot/initramfs-2.6.32-754.el6.x86_64.img /mnt/boot/ ,如下图:

5717ccda4546d84fdc8a3f1c2df8e1b3.png

10、把vmlinuz和initramfs修改成简单的名称,方便后面使用

cd /mnt/boot/

mv vmlinuz-2.6.32-754.el6.x86_64 vmlinuz

mv initramfs-2.6.32-754.el6.x86_64.img initramfs.img

11、手动编辑grub.conf文件(必要的内容)

vim /mnt/boot/grub/grub.conf

default=0

timeout=5

title customlinux

kernel /vmlinuz root=/dev/sda2 selinux=0 init=/bin/bash

initrd /initramfs.img

#init=/bin/bash:指定系统启动的第一个进程

12、创建新磁盘的/挂载点

mkdir /mnt/root

13、mount /dev/sdb2 /mnt/root/

14、创建/根目录下的文件夹

for DIR in `ls /`;do mkdir /mnt/root/$DIR ;done 结果如下:

c2ca841200fae81cfa65aa23d0b64b7a.png

15、使用copycmd.sh脚本拷贝需要的命令到/mnt/root下

测试拷贝的命令:ifconfig,insmod,ping,mount,ls,cat,df,lsblk,blkid,bash,vi,echo,umount

cat copycmd.sh:

read -p "Pls input copycmd directory: " copydir

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

while true

do

read -p "Pls input a copycmd or quit: " name

if [ "$name" == "quit" ];then

exit

else

#cp $name ${copydir}${newdir}

newname=`which $name|sed -rn 's#.*/([^/].*)#\1#p'`

newdir=`which $name|sed -rn 's#(^/.*/).*$#\1#p'`

if [ ! -f ${copydir}`which $name` ];then

mkdir -p ${copydir}${newdir} &> /dev/null

\cp `which $name` ${copydir}${newdir}

fi

ldd `which --skip-alias $name` | while read line

do

testname=`echo $line | sed -rn 's/(.*) =>.*$/\1/p'`

if [ "$testname" == "linux-vdso.so.1" ];then

continue

else

cmd=`echo $line | sed -rn 's#.*/(.*) .*$#\1#p'`

cmddir=`echo $line | sed -rn 's#.*(/.*/).*$#\1#p'`

\cp -aL ${cmddir}${cmd} ${copydir}$cmddir &> /dev/null

fi

done

fi

done

#注意:copycmd的目标地址一定要填/mnt/root(新磁盘的/目录)

复制命令的结果如下:

125fef53eba319a5578ff77ce10493da.png

16、复制网卡驱动e1000.ko

1) locate e1000 查找驱动的源地址

2) cp `locate e1000.ko` /mnt/root/lib/

3) ls /mnt/root/lib/

结果如下:

6578de4f50eaec051a580ea20f447165.png

17、 磁盘同步

sync

sync

18、切根后测试一个复制的命令是否正确

chroot /mnt/root

#注意:如果没有出现提示符“bash-4.1#”,则上面的步骤有错误,如下图:

da49d0b6f4f6f751b0d46b739a467442.png

19、测试一下新磁盘系统是否可用

1) 关机本虚拟机

2) 先复制linux新系统硬盘(即第1步中的centos6.10基础-2.vmdk)到一个地方

3) 新建一个虚拟机(CentOS6.10)

4) 复制linux新系统硬盘(centos6.10基础-2.vmdk)到新建的虚拟机中

5) 添加一个网卡,方便测试虚拟机网络(注意要用同一个vmnet)

6) 启动新虚拟机

7) 测试一个使用copycmd.sh脚本拷贝的命令(注意:ifconfig -a 看不到网卡信息,因为没有驱动)

8) insmod安装网卡驱动(insmod /lib/e1000.ko)

9) 添加临时IP地址(ifconfig eth0 192.168.36.16/24)

10) 查看IP地址信息(ifconfig -a)

11) ping -c 2 192.168.36.110(同一vmnet中正在运行的虚拟机IP)

12) 查看/boot下面的内容(因为缺少/etc/fstab,所以什么也看不到,可以先挂载)

13) mount /dev/sda1 /boot

14) 如果想开机启动能看到/boot下面的内容,就需要写/etc/fstab文件。

添加硬盘向导

5e13a5055fc5741864cfb973210beb32.png

正常启动的界面

5d7c62ddf4706a90dfc41a072552bf4c.png

测试一下命令

b6b3e51d7ec6540e5b4d9c63806b5a7e.png

添加网卡驱动及ping测试

4f4ef3e05fe9b7fe571942f7259209c9.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值