從無到有構建一個Mini Linux(1)


過程(1):

  1. 首先在宿主機上添加一塊新的硬盤

  2. 分區格式化並掛載

  3. 源碼編譯安裝內核(支持硬盤,cup,pci,硬件支持)

  4. 安裝grub

  5. 第一次測試



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))


wKioL1hLT6yTtCGTAAAZmoCdjBM606.png-wh_50



wKioL1hLT63jQW29AAAotxdFcVM593.png-wh_50



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章