您的位置:首页 > 运维架构 > Linux

从无到有构建一个Mini Linux(1)

2016-12-10 08:44 309 查看
过程(1):
首先在宿主机上添加一块新的硬盘

分区格式化并挂载

源码编译安装内核(支持硬盘,cup,pci,硬件支持)

安装grub

第一次测试

1.添加一块新的硬盘
我们添加的sdc

(a)使系统识别我们新添加的硬盘

[root@centos6 ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@centos6 ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@centos6 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

[root@centos6 ~]# lsblk
sdc      8:32   0    20G  0 disk  //成功识别


2.分区格式化并挂载

[root@centos6 ~]# fdisk /dev/sdc
[root@centos6 ~]# lsblk
sdc      8:32   0    20G  0 disk
├─sdc1   8:33   0 509.9M  0 part  //作为/boot分区
└─sdc2   8:34   0    10G  0 part  //作为根分区

[root@centos6 ~]# mkfs -t ext4 /dev/sdc1
[root@centos6 ~]# mkfs -t ext4 /dev/sdc2
[root@centos6 ~]# blkid
/dev/sdc1: UUID="f71f933c-8a83-461f-adc7-4c7f2ba34da2" TYPE="ext4"
/dev/sdc2: UUID="099506f4-fb21-421e-87c6-fe1bbbd03680" TYPE="ext4"

[root@centos6 ~]# mount /dev/sdc1 /mnt/boot
[root@centos6 ~]# mount /dev/sdc2 /mnt/sysroot/
[root@centos6 ~]# mount
/dev/sdc1 on /mnt/boot type ext4 (rw)
/dev/sdc2 on /mnt/sysroot type ext4 (rw)


3.源码编译安装内核
//不采用模块方式,直接将关键驱动做进内核核心中
[root@centos6 ~]# tar xf linux-3.10.67.tar.xz -C /usr/src  //我们采用3.10版本的内核
[root@centos6 ~]# cd /usr/src
[root@centos6 src]# ln -sv linux-3.10.67/ linux
[root@centos6 src]# cd linux
[root@centos6 linux]# make allnoconfig   ==> 从头开始选择
[root@centos6 linux]# lscpu //查看cpu
[root@centos6 linux]# lspci //查看pci、硬盘
[root@centos6 linux]# make menuconfig

//选择硬件平台

[*] 64-bit kernel --> 启用
[*] Enable loadable module support  --->
[*]   Module unloading 支持模块动态装卸载
Processor type and features  --->
[*] Symmetric multi-processing support  多处理器支持
Processor family (Generic-x86-64)  --->
(X) Generic-x86-64
Bus options (PCI etc.)  --->
[*] PCI support  启用PCI总线
Device Drivers  --->
SCSI device support  --->
<*> SCSI device support
<*> SCSI disk support
[*] Fusion MPT device support  ---> 由上图可知
<*>   Fusion MPT ScsiHost drivers for SPI
<*>   Fusion MPT misc device (ioctl) driver


[root@centos6 linux]# make bzImage  //只编译核心(不编译模块)
[root@centos6 linux]# cp arch/x86/boot/bzImage /mnt/boot/vmlinuz
//内核文件已近存在,由于我们把硬件驱动直接编译在内核中,所有不需要initrd文件

4.在目标磁盘上boot目录上安装grub
[root@centos6 ~]# grub-install --root-directory=/mnt/ /dev/sdc


//提供grub的配置文件
[root@centos6 linux]# vim /mnt/boot/grub/grub.conf
default=0
timeout=5
hiddenmenu
title sxj Minu
root (hd0,0)
kernel /vmlinuz root=/dev/sda2


5.第一次测试(第一次测试启动(只有内核和grub))







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 从无 有构建