成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

自己動手創建最精簡的Linux

系統 Linux
Linux一大亮點就是開源,相對于Windows我們可以在Linux上發揮更大的想象力,來親手打造擁有自己特色的Linux系統,首先我們從打造最基本的微型的Linux系統入手,通過整個打造過程的體驗,你就可以將自己的完整的Linux系統進行個性化設置,然自己用的Linux系統散發著自己的氣息,讓其更具親合力!!

 Linux一大亮點就是開源,相對于Windows我們可以在Linux上發揮更大的想象力,來親手打造擁有自己特色的Linux系統,首先我們從打造最基本的微型的Linux系統入手,通過整個打造過程的體驗,你就可以將自己的完整的Linux系統進行個性化設置,然自己用的Linux系統散發著自己的氣息,讓其更具親合力!!

下面我們就來直接操作,關于原理,會在每步中說明:

一、準備階段:

硬件設施:一臺宿主機、一個空磁盤(或者數據不再使用的磁盤,1G就足夠了,如果想對自己制作的Linux進行不斷的完善,那么就選用大點的光盤,文中我們將其視為sdb,根據自己實際情況進行相應的調整)。

1、分區、格式化我們準備的磁盤

將我們準備的新磁盤進行分區(如果是數據不用的磁盤,使用dd if=/dev/zero of=/dev/sdb bc=512 count=1 將其磁盤引導區的數據全部進行0覆蓋,這樣這塊磁盤也就編程了空磁盤)。

fdisk /dev/sdb 將其分為兩個區sdb1 100M 、sdb2 500M,類型為都為Linux,保存,退出

格式化分區:根據自己屬主機的文件系統類型,進行格式化我的為ext3,所以我格式化時加了個-j,如果自己的是ext2就不需要加-j了

mke2fs -j /dev/sdb1 mke2fs -j /dev/sdb2 #都將其格式化為ext3格式

2、掛載磁盤(掛載點自己選擇,但是掛載sdb1的掛載點名字必須為boot)

創建掛載點:

mkdir -pv /mnt/{boot,myroot}
mount /dev/sdb1 /mnt/boot  #將sdb1掛載至/mnt/boot
mount /dev/sdb2 /mnt/myroot   #將sdb2掛載至/mnt/myroot

(注:當我們掛載的這兩個分區的時候也許會出現分區不存在的錯誤提示,主要原因為系統沒能自動獲取剛剛創建的分區的信息,也就是/proc/partitions文件中沒有新建分區的信息,我們只需要輸入命令:partproble /dev/sdb 重讀分區信息,新建的分區信息將被寫入/proc/parttions文件,這樣就OK了)

二、打造階段:

1、準備我們Linux的心臟(內核)

查看我們宿主機中/boot目錄中的內容,會發現有類似vmlinuz-2.6.18-164.el5 vmlinuz-2.6.28.10這樣帶有版本號的文件,這就是系統的內核文件,我們選擇一個內核文件,將其拷貝到我們小Linux的/boot目錄中,這樣我們的Linux就有心臟了。

命令:

cp /boot/vmlinuz-2.6.18-164.e15 /mnt/boot/vmlinuxz  #將內核改名為vlinuxz。

(注:將內核進行改名,不僅有利于我們接下來操作的操作還可以避免因為此處內核名字和grub.conf文件中內核名字的不符而引起kernel panic(內核恐慌)問題,導致我們的小Linux無法啟動,此外我曾遇到過在虛擬機里用手打出的內核名字和用Tab鍵寫出的內核名字不符的現象,至今不知為何!所以我們盡可能的將我們小Linux的內核文件名字寫的簡短一點)

2、準備我們的Linux的善意欺騙文件initrd文件。

關于initrd文件的作用,我在有一篇名為《Linux開機流程簡述》的文章中詳細說明多,建議大家去看看,對我們的小Linux管理和維修是有很大幫助的。

同樣查看宿主機的/boot目錄內的內容,會發現有類似initrd-2.6.18-164.el5.img initrd-2.6.28.10.img 這樣以initrd開頭中間是版本號,以img結尾的文件,那么這就是initrd文件了,每個版本的內核文件,就會有一個與之版本號相對應的initrd文件,將與我們剛才選擇的內核版本號相對應的initrd文件拷貝到一個新建的目錄內改造(此處我們在/tmp目錄中創建一個名為test的目錄)

cp /boot/initrd-2.6.18-164.el5.img /tmp/test/

我們用查看這個文件的類型會發現它是一個用cpio打包,由gzip壓縮的文件,我們將其展開在當前目錄下。

zcat initrd-2.6.18-164.el5.img | cpio -id

展開之后我們會發現一個init的腳本文件,將其用vim打開,將以mkrootdev -t ext3 -o defaults,ro開頭行ro后面的內容改成sda2,保存退出,即可(sda2為我們小linux系統單獨運行時根文件系統所在的分區,在此我們告訴init進程,真正的根文件系統在sda2上面,讓內核去進行根文件系統的加載,需要注意的是ro和sda2之間有一個空格)

修改 完成之后,我問就該對其進行封裝復原了(封裝復原前***先將此目錄中的initrd-2.6.18-164.el5.img文件刪除,使用命令:rm -rf initrd-2.6.18-164.el5.img),使用命令:

find . | cpio -H newc -o | gzip -9 > /mnt/boot/initrd.gz

(注:find . 為當前目錄的所有內容cpio -H news -o 將目錄下的所有內容進行cpio打包gzip -9 打包之后進行gzip壓縮,因為這個文件必須是壓縮的格式> /mnt/boot/initrd.gz 將打包壓縮好的文件放在/mnt/boot目錄下,并命名為initrd.gz,重命名同樣是為了方便使用 )

3、向我們小Linux磁盤安裝grub引導程序。(關于grub的作用在我剛剛提到的文章里有介紹,此處不再說明)

安裝命令為:

grub-install --root-directory =/mnt /dev/sda

^此處為boot目錄的父目錄

進入/mnt/boot目錄查看是否有一個新的目錄grub,沒有的話則為安裝失敗,重新安裝,有的話直接進入該目錄。

使用vim創建文件grub.conf并寫入如下內容(注:#后為我的注釋內容,不要寫入)

default=0
timeout=10 #此處是我們系統啟動是菜單選擇時間的設置,我們設置為10秒。
title MY LINUX #title是在開機操作系統選擇菜單中我們小Linux所顯示的名字,可任意填寫
root (hd0,0) #告訴grub我們小Linux系統的內核、根文件系統,initrd文件的所在磁盤
kernel /vmlinuz ro root=/dev/sda2 rhgb quiet #告訴grub內核的名字及根文件系統所在的分區
initrd /initrd.gz #告訴grub initrd文件的名字

保存退出即可。

4、為我們的小Linux系統創建簡單的根文件系統

進入/etc/myroot目錄使用命令創建如下目錄:

mkdir -p {boot,proc,sys,dev,home,root,etc/{rc.d,sysconfig,init.d},bin,sbin,lib,usr/{bin,sbin,lib,include},var/{log,run},tmp,mnt,opt,media}

基本命令移植,將借助宿主機有關命令的庫文件,為我們的小Linux移植必須的命令(各命令的移植方法相同,在此以命令bash為例)

使用which bash 查看bash命令的位置,并將其拷貝到我們小Linux的相應位置即可

cp /bin/bash /mnt/myroot/bin/bash

由于系統在啟動時不是讀取bash命令本身,而是sh,所以我們為bash命令創建一個sh鏈接(只有這個命令需要鏈接)

進入/mnt/myroot/bin目錄

創建鏈接 ln -sv bash sh 然后查看該目錄將會看見sh

查看并拷貝bash命令所依賴的庫文件(沒有庫文件,命令只是個擺設)

使用命令ldd /bin/bash 將顯示bash所依賴的所有庫文件,如

linux-gate.so.1 => (0x0061c000)
libtermcap.so.2 => /lib/libtermcap.so.2 (0x00c8f000)
libdl.so.2 => /lib/libdl.so.2 (0x00c60000)
libc.so.6 => /lib/libc.so.6 (0x00b18000)
/lib/ld-linux.so.2 (0x00af5000)

***個庫文件不必拷貝,下面的庫文件需一一拷貝進小Linux對應的目錄,例如第二個庫文件的拷貝為:cp /lib/libtermcap.so.2 /mnt/myroot/lib/libtermcap.so.2

每個命令的移植過程都是如此,此外init命令也是必須要的,其它命令可以自行選擇。

4、創建我們小Linux的/etc/inittab、/etc/rc.d/rc.sysinit文件(關于這兩個文件的作用在我剛剛提到的文章里有介紹,此處不再說明)

在/etc目錄下創建inittab文件,內容如下:(同樣#之后為注釋內容)

id:3:initdefault: #設定系統默認啟動級別為3
si::sysinit:/etc/rc.d/rc.sysinit #讓系統執行/etc/rc.d/rc.sysinit腳本

保存退出

在/etc/rc.d目錄下創建腳本rc.sysinit ,內容如下

bin/bash #運行bash命令

保存退出,并給予腳本執行權限 chmod +x rc.sysinit

至此,最精簡Linux已經在被我們打造出來,趕緊將含有我們勞動成果的磁盤放在其他的裸機上運行一下吧,千萬要記住,心急吃不了熱豆腐,在取下磁盤之前一定要給宿主機足夠多的時間,將緩存中的數據卸載我們的小Linux磁盤上,不然后果可想而知!

這是個能進行最基本的運行的Linux,所以大家有很大的空間對其進行不斷的完善,希望大家一步步的讓我們的小Linux“長大”!

本文原文:http://aceruser.blog.51cto.com/2772529/636981

【編輯推薦】

  1. 如何選擇最適合你的Linux發行版?
  2. 手把手教你制作Linux發行版
  3. 盤點最適合初學者的Linux發行版
責任編輯:黃丹 來源: 51CTO博客
相關推薦

2024-10-14 13:07:40

Spring框架Boot

2009-12-03 13:56:05

Suse Linux開xinetd

2011-08-25 09:30:22

2020-09-29 12:13:46

SQL引擎底層

2020-05-20 13:53:41

HTTP環境安裝

2015-09-01 09:49:28

2010-09-28 09:20:28

Linux PPP設置

2014-11-10 15:12:46

2009-06-01 10:23:31

asp.net mvcasp.net mvc.net mvc框架

2009-07-06 09:06:58

清除電腦木馬程序

2011-10-31 10:17:05

插件

2014-06-20 09:18:54

Dustjs中間件

2009-03-16 16:30:18

2009-10-27 09:01:54

VB.NET內存指針

2011-05-06 15:35:58

打印機打印故障

2024-12-06 09:58:09

2023-03-10 10:47:06

Xubuntu發行版

2014-11-26 10:54:20

C#

2013-11-26 13:11:20

編程優秀產品移動應用

2013-11-29 14:07:29

編程產品
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品久久久久久久久中文字幕 | 亚洲国产精品久久久久婷婷老年 | 久久精品在线免费视频 | 成人一级毛片 | 日韩精品免费视频 | www.奇米| 欧美电影免费观看 | 亚洲高清在线观看 | 亚洲成av人片在线观看 | 一级在线观看 | 午夜视频一区 | 亚洲日日夜夜 | 国产成人精品久久二区二区91 | 日韩欧美三级电影 | 日韩激情在线 | 中文字幕在线观看 | 在线观看av网站永久 | 日韩国产一区二区三区 | 欧洲色综合 | 一区二区三区在线免费观看 | 日韩视频专区 | 一区二区久久 | 欧美午夜一区二区三区免费大片 | 亚洲精品日韩一区二区电影 | 久久久噜噜噜久久中文字幕色伊伊 | 久久男人 | 国产成人久久 | 亚洲国产欧美国产综合一区 | wwwww在线观看 | 成人综合在线视频 | 亚洲 欧美 激情 另类 校园 | 国产精品亚洲成在人线 | 精品免费 | 成人在线视频一区 | 成人在线免费观看视频 | 国产7777| 国产欧美一区二区三区在线看蜜臀 | 欧美xxxx性| 夜夜爽99久久国产综合精品女不卡 | 日韩视频在线免费观看 | 欧美aaaaaaaaaa |