编译安装小型内核

准备环境:宿主机,目标机,硬盘一块

在宿主机上操作:

首先在宿主机上准备一块硬盘sdb,大小为10G即可。分2个区sdb1(50M)和sdb2(512M)。

格式化该磁盘

# mke2fs -t ext4 /dev/sdb1
# mke2fs -t ext4 /dev/sdb2

分别挂载

# mount /dev/sdb1 /mnt/boot/ 
# mount /dev/sdb2 /mnt/sysroot/

创建grub文件

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

# cd /mnt/boot/
编辑grub配置文件
# vim grub/grub.conf

# cd /mnt/sysroot/

创建目录

编辑#vim /sbin/init

echo -e "Welcome to zhou
\033[33Customed \033[0m linux"
mount -n -t proc proc /proc
mount -n -t
sysfs sysfs /sys
mount -n -t devtmpfs none /dev
mount -n -o remount,rw
/dev/sda2 /
/bin/bash

给其执行权限

# chmod +x sbin/init

执行脚本bincp.sh复制命令:

[[email protected] ~]# bash bincp.sh
Plz enter a command: bash
Plz enter a
command: mount
Plz enter a command: umount
Plz enter a command: ls

Plz enter a command: kill
Plz enter a command: ifconfig
Plz enter a
command: quit

解压内核

# tar xf linux-3.13.6.tar.xz
# cd linux-3.13.6
# make allnoconfig
# make menuconfig

要手动勾选的内核选项
64-kit kernel

Ceneral setup
    --> Local version - append to kernel release

--> System V IPC
Enable loadable module support
    -->
Module unloading
Enable the block layer
    --> Block layer SG
support v4
Processor type and features
    --> Symmetric
multi-processing support
    --> Processor family
        --> Core
2/newer Xeon
    --> Multi-core scheduler suppor
Bus options (PCI
etc.)
    --> PCI support
Executable file formats / Emulations

--> Kernel support for ELF binaries
    --> Kernel support for
scripts starting with #!
Networking support
    --> Networking
options
        --> TCP/IP networking
Device Drivers
    -->
Generic Driver Options
        --> Maintain a devtmpfs filesystem to
mount at /dev
        --> Automount devtmpfs at /dev, after the kernel
mounted the rootfs
    --> SCSI device support
        --> SCSI
device support
        --> SCSI disk support
    --> Fusion MPT
device support
        --> Fusion MPT ScsiHost drivers for SPI

--> Fusion MPT logging facility
    --> Network device
support
        --> Ethernet driver support
            --> Intel
devices
                --> Intel(R) PRO/1000 Gigabit Ethernet support

--> Intel(R) PRO/1000 PCI-Express Gigabit Ethernet
support
    --> Input device support
        --> Mouse interface

--> Keyboards
        --> Mice
    --> USB support

--> xHCI HCD (USB 3.0) support
        --> EHCI HCD (USB
2.0) support
        --> OHCI HCD (USB 1.1) support
        -->
UHCI HCD (most Intel and VIA) support
File systems
    --> The
Extended 4 (ext4) filesystem

# make –j 4

复制bzImage

# cp arch/x86/boot/bzImage /mnt/boot/

而后把磁盘放入到目标机上实验下可否正常启动

# make menuconfig    
# make -j 3       
# make install             
# cp _install/* /mnt/sysroot       
# ls /mnt/sysroot/              
clipboard[54] 
# cp /root/busybox-1.22.1/_install/* /mnt/sysroot/ -r

为目标创建根文件系统。

# cd /mnt/sysroot 
# mkdir -pv boot dev etc/{rc.d,sysconfig,profile.d} home/{gentoo,fedora,test,}  proc root sys 
usr/{bin,sbin,local,lib,lib64} 
# chown gentoo.gentoo home/gentoo       
# chown test.test  home/test 
# chown fedora.fedora home/fedora

配置文件

# vim /mnt/boot/grub/grub.conf

timeout 3
    default 0
   
title nihao linux
     root (hd0,0)
     kernel /bzImage ro
root=/dev/sda2

物理控制台的inittab:
    ::sysinit:/etc/rc.d/rc.sysinit
   
console::respawn:-/bin/sh
    ::ctrlaltdel:/sbin/reboot
   
::shutdown:/bin/umount -a -r

用户登录界面的inittab   
    ::sysinit:/etc/rc.d/rc.sysinit
   
::respawn:/sbin/getty 19200 tty1
    ::respawn:/sbin/getty 19200 tty2

::respawn:/sbin/getty 19200 tty3
    ::respawn:/sbin/getty 19200
tty4
    ::respawn:/sbin/getty 19200 tty5
    ::respawn:/sbin/getty
19200 tty6
    ::ctrlaltdel:/sbin/reboot
    ::shutdown:/bin/umount -a
-r

# vim /mnt/sysroot/etc/fstab           
/dev/sda2 / ext4 defaults 0 0    
/dev/sda1 /boot ext4 defaults 0 0    
proc /proc proc defaults 0 0    
sysfs /sys sysfs defaults 0 0
# vim /mnt/sysroot/etc/rc.d/rc.sysinit

#!/bin/sh   
#

echo -e "Welcome to \033[34mWuKui\033[0m Linux"   
echo "remounting root
filesystem"   
mount -n -o remount,rw /dev/sda2 /   
echo "mount all
filesystem"   
mount -a   
echo "create device file"   
mdev -s

echo "set hostname is $HOSTNAME"
[ -r /etc/sysconfig/network ]
&&  source /etc/sysconfig/network
[ -z "$HOSTNAME" ]  &&
hostname $HOSTNAME || hostname localhost
export PS1=‘[\[email protected]\h \W]\$‘

# vim  /mnt/sysroot/etc/passwd

root:x:0:0:root:/root:/bin/sh

fedora:x:501:501::/home/fedora:/bin/sh

test:x:502:502::/home/test:/bin/sh

# vim /mnt/sysroot/etc/group    
root:x:0:
fedora:x:501:

test:x:502:
# openssl passwd -1 -salt `openssl rand -hex 4`

Password:

$1$fc73284e$Q/Ntg8FKYsasdbZjp/sakjO

# vim /mnt/sysroot/etc/shadow

root:$1$fc66576e$Q/Ntg4oKYue0bZjp/uh4T0:16272:0:99999:7:::

fedora:$1$fc66576e$Q/Ntg4oKYue0bZjp/uh4T0:16302:0:99999:7:::

test:$1$fc66576e$Q/Ntg4oKYue0bZjp/uh4T0:16302:0:99999:7:::
# chmod 600
/mnt/sysroot/etc/shadow
# vim /mnt/sysroot/etc/sysconfig/network

HOSTNAME=mylinux

提供dropbaer
编译

# ./configure --prefix=/usr/local/dropbear
#
make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
# make
PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install
# cd
/usr/local/dropbear/
# ls bin/  
clipboard[55]
  
       
#
ls sbin/

密钥文件

# bin/dropbearkey -t dss -f 
/etc/dropbear/dropbear_dss_host_key # bin/dropbearkey -t rsa -s 2048 -f 
/etc/dropbear/dropbear_rsa_host_key # ll /etc/dropbear/ clipboard[57] 
# sbin/dropbear -p 22022 -E -F     前台 clipboard[58] # ss -tnlp | 
grep 22022 clipboard[59] 在XSHELL中测试登陆 clipboard[60] 开始移植 # 
PATH=/usr/local/dropbear/bin/:/usr/local/dropbear/sbin/:$PATH clipboard[61] 
clipboard[62] # mkdir /mnt/sysroot/etc/dropbear # dropbearkey -t dss 
-f /mnt/sysroot/etc/dropbear/dropbear_dss_host_key # dropbearkey -t rsa -s 
2048 -f /mnt/sysroot/etc/dropbear/dropbear_rsa_host_ke # mkdir -pv 
/mnt/sysroot/var/run      dropbear # cp /etc/shells /mnt/sysroot/etc 
# echo /bin/ash >> /mnt/sysroot/etc/shells
dropbare启动时依赖的nsswitch # cp /etc/nsswitch.conf /mnt/sysroot/etc # cp 
-a -d /usr/lib64/libnsspem.so /usr/lib64/libnsssysinit.so 
/usr/lib64/libnssutil3.so /mnt/sysroot/usr/lib64 # cp -a -d 
/lib64/libnss_files* /mnt/sysroot/lib64 # cp -a -d /usr/lib64/libnss3.so  
/usr/lib64/libnss_files.so /mnt/sysroot/usr/lib64    其开机自动挂载 # echo 
"devets    /dev/pts    devpts    gid=5,mode=620 0 0" >> /mnt/etc/fstab 
 
# vim /mnt/sysroot/etc/rc.d/rc.sysinit     mkdir /dev/pts     放在mount -a前 
clipboard[63]
# vim /mnt/sysroot/etc/rc.d/rc.sysinit   /sbin/ifconfig lo 127.0.0.1 
netmask 255.0.0.0 /sbin/ifconfig eth0 192.168.127.53 netmask 255.255.255.0 
export PATH=/usr/local/dropbear/bin:/usr/local/dropbear/sbin:$PATH 
/usr/local/dropbear/sbin/dropbear -p 22
时间: 2024-10-10 00:03:28

编译安装小型内核的相关文章

编译安装linux内核步骤

编译安装linux内核步骤: 一.获取内核源码 源码网址:www.kernel.org 二.解压内核源码 首先以root帐号登录,然后进入/usr/src子目录.如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-x.y.z的子目录.该目录下存放着内核x.y.z的源代码.此外,还会发现一个指向该目录的链接linux.删除该连接,然后将新内核的源文件拷贝到/usr/src目录中,并解压:     # tar zxvf Linux-2.3.14.tar.gz 文件释放成功后,在/

CentOS 6.9编译安装新版本内核

一.编译安装前准备: 1.安装依赖包组:# yum -y groupinstall "Server Platform Development""Development Tools" 2.从https://www.kernel.org/下载需要编译的内核源码包linux-3.10.105.tar.xz,并上传至服务器 二.编译安装新版本内核linux-3.10.105.tar.xz: 1.查看系统原有内核版本:# uname -r  -->  2.6.32-69

教你如何快速编译安装新内核

随着内核版本的更新换代,你是否有觉得自己的内核版本有些低了呢?如果有的话,没关系,今天小编就来教大家如何编译安装新的内核. 在编译安装内核之前先检查我们的虚拟机所在的磁盘空间,预留空间10G以上,不然编译安装内核无法完成.下面我们就开始内核的编译安装吧. (1)下载源码文件 先在内核官网(www.kernel.org/)上下载最新版本的内核到桌面上,然后rz拷到linux系统上,找到一个空目录如/app/tmp,将之移到/app/tmp中,然后再解包解压,就会生成一个目录 (2)准备文本配置文件

linux内核系列(一)编译安装Linux内核 2.6.18

1.配置环境 操作系统:CentOS 5.2 下载linux-2.6.18版本的内核,网址:http://www.kernel.org 说明:该编译文档适合2.6.18以上的Linux内核版本,只需所编译的 Linux内核版本不能低于Linux操作系统自身的内核版本,不然会遇到很多问题:   2.开始编译 cp  ./ linux-2.6.18.tar.gz  /usr/src/ tar –zxvf ./linux-2.6.18.tar.gz cd /usr/src/linux-2.6.18 /

如何编译安装Linux内核

操作系统环境 VMware workstation15 Pro ubuntu18.04 LTS 待编译内核5.3.10版本 内核下载地址 kernel.org 环境配置 在正式编译前需要安装部分软件. sudo apt update && sudo apt upgrade sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison 解压缩

Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装

原文:Linux内核分析(一)---linux体系简介|内核源码简介|内核配置编译安装 Linux内核分析(一) 从本篇博文开始我将对linux内核进行学习和分析,整个过程必将十分艰辛,但我会坚持到底,同时在博文中如果那些地方有问题还请各位大神为我讲解. 今天我们会分析到以下内容: 1.      Linux体系结构简介 2.      Linux内核源码简介 3.      Linux内核配置.编译.安装 l  Linux体系结构简介 1.       Linux体系结构(linux系统构成)

LVS Funnat 编译安装使用

参照http://kb.linuxvirtualserver.org/wiki/IPVS_FULLNAT_and_SYNPROXY 准备文件 下载源文件 ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/kernel-2.6.32-220.23.1.el6.src.rpm下载LVS Tools http://kb.linuxvirtualserver.org/images/a/a5/Lvs-fullnat-s

Debian下编译安装驱动模块

在Linux下,我们常有需要自己来编译安装驱动模块的情况,例如要安装显卡驱动,要安装无线驱动,有的时候某个程序的安装使用与需要安装相应的驱动模块.Debian Linux下的生活本已十分简单,使用apt可以处理一切.单就我们所讨论的驱动安装,一般情况下,源中也会有已编译的相应驱动可用.但是一般来说,驱动模块与所用的内核版本有着较强的依赖关系,如果源中并没有与我们所用的内核版本相匹配的驱动时,就需要我们自己手动来编译安装驱动模块了.在这样的情况,Debian下的驱动模块编译安装工具m-a就有了用武

Ubuntu 下编译安装linux

1. 准备工作切换为管理员权限,sudo –i 输入用户密码 进入root 权限apt-get install build-essential kernel-package libncurses5-dev libqt3-headersbuild-essential (基本的编程库(gcc, make 等)kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)libncurses5-dev (meke menuconfig 要调用的) libqt