精简 linux
?????????????????????精簡(jiǎn)linux
精簡(jiǎn)linux是為了將linux系統(tǒng)使用固態(tài)盤(pán)等小容量存儲(chǔ)設(shè)備來(lái)代替pc機(jī)上面的硬盤(pán),簡(jiǎn)約成本,提高速率,延長(zhǎng)使用壽命,方便移植。所以呢,那我們呢就來(lái)親手打造一個(gè)屬于自己的linux,體驗(yàn)一下其中的過(guò)程,更深層次的去了解linux系統(tǒng)啟動(dòng)的過(guò)程以及系統(tǒng)吧!!!
??????制作過(guò)程分以下幾大步:
一.?準(zhǔn)備階段?
?????需要一個(gè)宿主機(jī),一個(gè)干凈的硬盤(pán)(大概20G容量),由于實(shí)驗(yàn)條件限制,所以本人選用了虛擬機(jī),在linux系統(tǒng)上多加一塊硬盤(pán),以sdb命名,完成后取出來(lái)即可
二.制作階段
?????1.格式化新硬盤(pán),并進(jìn)行分區(qū)
??????命令如下:fdisk?-l???查看硬盤(pán)和分區(qū)
????????????????fdisk??/dev/sdb???進(jìn)行分區(qū)???p???分為3個(gè)主分區(qū)
?????????????????將第三個(gè)分區(qū)的id號(hào)改為82???t??82
?????????????????對(duì)第一個(gè)分區(qū)執(zhí)行?a
進(jìn)行格式化???用到的命令??mkfs??-t??ext3??/dev/sdb1?(/dev/sdb2)
創(chuàng)建掛載點(diǎn)????mkdir?/mnt/boot/????mkdir???/mnt/sysroot/
掛載?????mount?/dev/sdb1???/mnt/boot????mount???/dev/sdb2???/mnt/sysroot
用mount?查看掛載狀況?
??2.打造過(guò)程
(1).grub引導(dǎo)程序??
安裝grub引導(dǎo)程序時(shí)?
命令????grub-install?--root-directory=/mnt??/dev/sdb??
運(yùn)行g(shù)rub命令
進(jìn)入/mnt/boot/??查看是否有g(shù)rub目錄?有則成功??反之失敗????然后進(jìn)入grub目錄
創(chuàng)建grub.conf文件
?
?
?
?
(2).linux內(nèi)核
查看宿主機(jī)中/boot目錄中的內(nèi)容,
有這個(gè)文件?,將這個(gè)文件拷貝到?我們linux的boot目錄下就行了
cp?/boot/vmlinux-2.6.18-164.e15????/mnt/boot
?
(3).linux的驅(qū)動(dòng)initrd文件
?宿主機(jī)boot目錄下同樣有這樣一個(gè)文件
-rw-------?1?root?root?2602252?Jul?20?00:22?initrd-2.6.18-164.el5.img
在~目錄下創(chuàng)建一個(gè)目錄??假設(shè)為abc
進(jìn)入abc目錄下?將initrd文件解壓到該目錄下????zcat??/boot/initrd-2.6.18-164.el5.img???|cpio???-id
查看abc下的文件
利用vim??init??將??resume?LABEL=SWAP-sda3??注釋掉??位于87行
重新將他打包??find?.?|cpio?-o?-H?newc??--quiet?|gzip?-9?-n?>/mnt/boot/initrd.gz
編輯新的grub菜單?如上圖
?
(3).?建立根目錄
?在sysroot下創(chuàng)建以下目錄?
Bin??boot?dev?etc?home?lib?media?mnt??misc??net??opt?proc?root?sbin?selinux??srv
Sys??tftpboot??tmp??usr??var??
Mkdir??usr/bin???
Mkdir???usr/sbin
Mkdir??etc/rc.d
用which?命令?查出?init的位置
將init??拷貝到sysroot/sbin??下??????cp??/sbin/init??/mnt/sysroot/sbin
找到庫(kù)文件??并拷貝到相應(yīng)位置??
執(zhí)行l(wèi)dd??命令???查出依賴的鏈接庫(kù)文件
linux-gate.so.1?=>??(0x00626000)
libsepol.so.1?=>?/lib/libsepol.so.1?(0x00585000)
libselinux.so.1?=>?/lib/libselinux.so.1?(0x005cd000)
libc.so.6?=>?/lib/libc.so.6?(0x003d5000)
libdl.so.2?=>?/lib/libdl.so.2?(0x00546000)
/lib/ld-linux.so.2?(0x003b7000)
除了不帶lib的文件??只要帶lib都要拷????需要拷的有?bash??init??ls??cat?
cp??/lib/libsepol.so.1???/mnt/sysroot/lib/
其余的同上?一一拷貝???如果可以?自己可以編一個(gè)shell腳本???一次性拷貝
?
(4).創(chuàng)建Linux的/etc/inittab、/etc/rc.d/rc.sysinit文件
切換到sysroot/etc下
根據(jù)宿主機(jī)的inittab信息?創(chuàng)建新的inittab??
需要以下文件??因?yàn)槭呛?jiǎn)易的?故僅列出自己需要的?
21si::sysinit:/etc/rc.d/rc.sysinit
?22?
?23?l0:0:wait:/etc/rc.d/?sysshutdown
?29?l6:6:wait:/etc/rc.d/sysreboot
在rc.d?目錄下?創(chuàng)建兩個(gè)腳本??一個(gè)是sysshutdown???一個(gè)是?sysreboot
Sysshutdown??
#!/bin/bash?
Exec??/sbin/halt??-p?(拷貝)
Sysreboot
#!/bin/bash
Exec??/sbin/reboot??-f???(強(qiáng)制)
為兩個(gè)腳本文件加上可執(zhí)行???a+x??
同時(shí)把halt?和reboot??拷貝的/mnt/sysroot/sbin的相應(yīng)目錄下
?
進(jìn)入rc.d目錄下??創(chuàng)建一個(gè)rc.sysinit
#!/bin/bash
echo?-e?"\033[31m?mylinux??\033[0m"
/bin/bash
Chmod?a+x??rc.sysinit
?
將hostname??ifconfig??ping??拷貝到/mnt/sysroot/
怎么初始化你的主機(jī)名字呢??
if?[?-f?/etc/sysconfig/network?];?then
?????.?/etc/sysconfig/network
?fi
if?[?-z?"$HOSTNAME"?-o?"$HOSTNAME"?=?"(none)"?];?then
??????HOSTNAME=localhost
?Fi
?/bin/hostname??$HOSTNAME
?
追加到rc.sysinit??在etc目錄下創(chuàng)建sysconfig
執(zhí)行??cp?/etc/sysconfig/network??sysconfig/??將宿主機(jī)的sysconfig文件拷貝到我們linux的sysconfig下
?
想要設(shè)置網(wǎng)絡(luò),將以下模塊考到?/mnt/sysroot/lib/modules
?
設(shè)置內(nèi)核參數(shù)
Set?-p?
設(shè)置網(wǎng)絡(luò)參數(shù)
/sbin/insmod??/lib/moudules/mii.ko???/sbin/insmod??/lib/moudules/pcnet32.ko?
/sbin/ifconfig?eth0?192.168.1.44/24
/sbin/ifconfig?lo?127.0.0.1/8
以上信息要追加到rc.sysinit中哦
然后是將?insmod??ifconfig??拷貝到?/mnt/sysroot/etc
?
最后是?要想在啟動(dòng)的界面上有圖片??
需要先安裝本地yum
先創(chuàng)建掛載點(diǎn),掛載光盤(pán)??,再進(jìn)入/etc/yum.conf?,?
編輯?yum.repos.d/rhel-debuginfo.repo?????修改baseurl:file:///mnt/cdrom/Server??
用yum安裝??gimp
執(zhí)行?gimp
將圖片傳到系統(tǒng)中???用gimp做圖片??具體自己試試就知道???不再作介紹??
?
Sync
Sync???把相關(guān)信息同步到他們要寫(xiě)入的磁盤(pán)設(shè)備上去
?
3.安裝到其他機(jī)器上??將硬盤(pán)換成我們做的這個(gè)??啟動(dòng)??
?
這個(gè)linux?還不完善?大家呢喜歡什么或者需要什嗎?,就添加什么?,是我們的linux不斷強(qiáng)大起來(lái)吧!!!
?
未完待續(xù)。。。。
?
轉(zhuǎn)載于:https://blog.51cto.com/7572433/1266591
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
- 上一篇: hibernate 使用别名查询
- 下一篇: linux ls -l 详解