制作简易Linux系统

先系统中有一块空闲磁盘,将其划分为两个分区/dev/sdb1和/dev/sdb2,/dev/sdb1做/boot分区,/dev/sdb2做/分区
1 . 新分区格式化文件系统

mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2

2 . mkdir /app/boot -p 创建/dev/sdb1分区的挂载点
3 . mount /dev/sdb1 /app/boot 将sdb1分区挂载到/app/boot上
4 . grub-install --root-directory=/app /dev/sdb 安装sdb磁盘的grub到/app/boot下,即为/sdb1磁盘分区上
5 . ls /app/boot grub文件已生成
6 . hexdump -c -n 512 /dev/sdb 查看/dev/sdb的512字节
7 . cd /app/boot
8 . cp /boot/vmlinuz-2.6.32-696.el6.x86_64 /boot/initramfs-2.6.32-696.el6.x86_64.img /app/boot 拷贝本系统的vmlinuz内核文件和initramfs虚拟磁盘文件到sdb1分区的/app/boot文件中
9 . vim /app/boot/grub/grub.conf

default=0
timeout=5
title danran
root (hd0,0)
kernel /vmlinuz-2.6.32-696.el6.x86_64 root=UUID=57dcc7f1-6df9-4748-b5c7-9c75a4d45f32  selinux=0 init=/bin/bash   \\/dev/sdb2的UUID,且为新系统的/分区,系统启动不启动/sbin/init进程,而是启动/bin/bash为第一启动进程        
initrd /initramfs-2.6.32-696.el6.x86_64.img

10 . mkdir /app/rootfs
11 . mount /dev/sdb2 /app/rootfs 挂载sdb磁盘的根分区/dev/sdb2到/app/rootfs
12 . cd /app/rootfs
13 . mkdir (root,bin,sbin,lib,lib64,var,usr,dev,etc,proc,sys,home) -pv
14 . vim /app/cmdcp.sh 编辑命令拷贝脚本

vim cmdcp.sh 
    
    #!bin/bash
    #ch_root="/app/sysroot"
    
    [ ! -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 -f $cmd_path ${ch_root}${bin_dir}
            return 0
        else
            echo "Command not found"
        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 ${cn_root}${lib_dir} ] || mkdir -p ${ch_root}${lib_dir}
            [ -f ${ch_root}${loop} ] || cp $loop ${ch_root}${lib_dir}
        done
    }

    read -p "Please input copy path: " path
    ch_root=$path
    
    read -p "Please input a command or quit: " command
    
    while [ "$command" != "quit" ];do
        if bincopy $command;then
            libcopy $command
        fi
    
    read -p "Please input a command or quit: " command
    done

15 . bash /app/cmdcp.sh 拷贝以下命令到/app/rootfs/bin

Please input copy path: /app/rootfs/bin
Please input a command or quit: ls
Please input a command or quit: ifconfig
Please input a command or quit: cpp
Please input a command or quit: cp
Please input a command or quit: mv
Please input a command or quit: cat
Please input a command or quit: vi
Please input a command or quit: tree
Please input a command or quit: reboot
Please input a command or quit: bash
Please input a command or quit: ping
Please input a command or quit: lsblk
Please input a command or quit: ip
Please input a command or quit: insmod
Please input a command or quit: lsmod
Please input a command or quit: rmmod
Please input a command or quit: quit                        
  • 拷贝网卡驱动模块

16 . ethtool -i eth0 查看eth0网卡的设备信息
17 . locate e1000.ko 查看e1000.ko驱动模块的路径信息
18 . cp /lib/modules/2.6.32-696.el6.x86_64/kernel/drivers/net/e1000/e1000.ko /app/rootfs/lib 拷贝e1000.ko网卡模块到/app/rootfs/lib文件
19 . 关闭系统,拔出/dev/sdb磁盘,然后插入没有安装系统的新主机上启动即可
20 . 新主机挂载磁盘
21 . vim /sbin/init(开机自动运行)

#!/bin/bash
....

流程图如下

图1
图1

图2
图2

图3
图3

图4
图4

拷贝网卡设备驱动模块

图5
图5

新主机挂载磁盘启动后界面

图6
图6
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容