亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 881 | 回復(fù): 0
打印 上一主題 下一主題

通過chroot 構(gòu)建Linux操作系統(tǒng)概要 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-10-20 20:02 |只看該作者 |倒序瀏覽

作者:北南南北
來自:LinuxSir.Org
提要:在已有的Linux操作系統(tǒng)中,安裝另一個開源操作系統(tǒng),我們一般是先構(gòu)建新操作系統(tǒng)的chroot基礎(chǔ)環(huán)境,然后chroot進(jìn)入
新構(gòu)建的操作系統(tǒng)環(huán)境來安裝和配置。這種構(gòu)建和安裝操作系統(tǒng)的方法,對于我們學(xué)習(xí)和研究操作系統(tǒng)結(jié)構(gòu)和原理應(yīng)該說比較重要。本文舉了簡單的例子,以
Fedora Core 5.0 為基礎(chǔ),通過chroot來構(gòu)建Slackware 10.2;

目錄

1、chroot方式安裝操作系統(tǒng)的目的和用途;
2、通過chroot 方式安裝操作系統(tǒng)所需要的系統(tǒng)環(huán)境;
3、通過chroot 安裝操作系統(tǒng)的流程;
4、操作系統(tǒng)安裝安裝目的地的介質(zhì)說明;
5、實說簡說在Fedora 中安裝Slackware 10.2;

6、有關(guān)軟件包rpm、tgz、deb等軟件包提;

7、chroot 成功切入新的操作系統(tǒng)后的軟件安裝問題補(bǔ)充;
8、關(guān)于此文;
9、參考文檔;
10、相關(guān)文檔;

++++++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++++++


1、chroot方式安裝操作系統(tǒng)的目的和用途;

chroot 工具是Linux操作系統(tǒng)都具備的工具,從表面的意思看,chroot
是從一個/根到另一個/根。在一個Linux操作系統(tǒng)中安裝另一個操作系統(tǒng),就是利用chroot的這個特點(diǎn)。首先創(chuàng)建chroot運(yùn)行的基礎(chǔ)環(huán)境,然后
通過chroot到新的/根,然后再用相應(yīng)的軟件包管理工具把新的操作系統(tǒng)其它軟件包安裝上;
幾乎所有的開源操作系統(tǒng)都可以用chroot的方法來安裝,比如Gentoo
、LFS及CRUX比較常用chroot;通過chroot安裝操作系統(tǒng),好象堆積木一樣,一塊一塊的把操作系統(tǒng)安裝起來,所以Gentoo和LFS的
Fans特別有成就感。呵,也說是操作系統(tǒng)全手工打造,成就感自然不言而喻了;
通過chroot安裝操作系統(tǒng),我們能學(xué)到什么呢?主要是能知道一個操作系統(tǒng)最少需要多少部件可以“動”起來,以及了解一個操作系統(tǒng)需要哪些基礎(chǔ)的必備的“部件”,這對開發(fā)自己的基于Linux操作系統(tǒng)以及了解操作系統(tǒng)的構(gòu)成及原理是比較重要的;

2、通過chroot 方式安裝操作系統(tǒng)所需要的系統(tǒng)環(huán)境;

最根本的環(huán)境是是在您的機(jī)器有得有一個能運(yùn)行的Linux操作系統(tǒng)或一個LiveCD;

3、通過chroot 安裝操作系統(tǒng)的流程;

要下面幾個流程:

一、規(guī)劃硬盤分區(qū)或創(chuàng)建映像文件;請參考:
《實例解說 fdisk 使用方法》
二、創(chuàng)建文件系統(tǒng);
《存儲設(shè)備分區(qū)操作及文件系統(tǒng)管理概述》
三、掛載文件系統(tǒng);
《Linux 創(chuàng)建文件系統(tǒng)及掛載文件系統(tǒng)流程詳解》
四、安裝基礎(chǔ)系統(tǒng);主要通過解壓軟件包來實現(xiàn);
五、修改新系統(tǒng)的配置文件,比如 位于新系統(tǒng)中的/etc/fstab
六、解決依賴關(guān)系,安裝軟件包管理工具;
七、通過chroot進(jìn)入新系統(tǒng);
八、通過新系統(tǒng)的軟件包我管理工具來安裝其它軟件包;
九、處理引導(dǎo)問題,比如GRUB引導(dǎo)之類的;
《系統(tǒng)引導(dǎo)管理器GRUB,為初學(xué)者指南》


4、操作系統(tǒng)安裝安裝目的地的介質(zhì)說明;

一個操作系統(tǒng)可以安裝在物理硬盤中,也可以安裝在一個映像文件中;安裝在物理硬盤中大家都能理解。安裝在一個映像文件中怎么理解呢?比如通過
VMWARE來虛擬安裝操作系統(tǒng)是不是安裝在一個文件中呢?是的,和這個意思差不多; 再說一點(diǎn),交換分區(qū)swap
也可以是文件;再比如Xen虛擬操作系統(tǒng)就可以安裝在文件映像中;
安裝在映像文件中的操作系統(tǒng),可以用來學(xué)習(xí),通過chroot訪問,也可以通過xen來虛擬等 ... ... 還可以做成類似file.iso的形式來存儲文件等;

5、實說簡說在Fedora 中安裝Slackware 10.2;

本例是在Fedora Core 5.0 中通過chroot 安裝Slackware
10.2,安裝目的地的介質(zhì)分為兩種,一種是物理硬盤;一種是映像文件。安裝在物理硬盤的可以通過GRUB或LILO等引導(dǎo)管理器來獨(dú)立真實運(yùn)行,安裝在
映像文件中的能通過chroot訪問或Xen虛擬運(yùn)行;

5.1  通過chroot 安裝Slackware 10.2 到一個硬盤物理分區(qū)中;

這個過程好象是有點(diǎn)多余,但寫一寫也好,這是大多開源操作系統(tǒng)的安裝都通用的,也是最原始、最有效的方法,也就是說在一個已有的操作系統(tǒng)環(huán)境中安裝另一個操作系統(tǒng);

首先:您得懂的規(guī)劃您的分區(qū),請參考:
《實例解說 fdisk 使用方法》
其次:您還要知道如何創(chuàng)建文件系統(tǒng),請參考:
《存儲設(shè)備分區(qū)操作及文件系統(tǒng)管理概述》
第三:您要知道如何掛載一個文件系統(tǒng);請參考:
《Linux 創(chuàng)建文件系統(tǒng)及掛載文件系統(tǒng)流程詳解》

掛載文件系統(tǒng)就是通過mount 來掛載;
#mount 存儲設(shè)備    掛載點(diǎn)
[color="green"]舉例:
比如我的硬盤/dev/hda5是空白分區(qū),并且我想創(chuàng)建/dev/hda5為ext3文件系統(tǒng),并且把它掛載到 /mnt/slack目錄中,然后通過chroot來安裝Slackware 10.2;
第一步:您要通過分區(qū)工具fdisk 或parted來規(guī)劃您的分區(qū),此步省略;
請參考:
《實例解說 fdisk 使用方法》

第二步:創(chuàng)建文件系統(tǒng);

[root@localhost ~]#mkdir /mnt/slack
[root@localhost ~]# mkfs.ext3 /dev/hda5  注:格式化/dev/hda5為ext3文件系統(tǒng);

第三步:掛載文件系統(tǒng);

[root@localhost ~]# mount /dev/hda5 /mnt/slack  注:掛載/dev/hda5到 /mnt/slack目錄;

第四步:掛載slackware 10.2 光盤的第一張,安裝基礎(chǔ)系統(tǒng);

[root@localhost ~]# mount -o loop slackware-10.2-install-d1.iso /mnt/cdrom/
我們可以先在/mnt/slack目錄中創(chuàng)建一個軟件包存放目錄,用于存放slackware-10.2-install-d1.iso中的所有內(nèi)容;
[root@localhost ~]#mkdir /mnt/slack/pack
[root@localhost ~]# cp -rp /mnt/cdrom/* /mnt/slack/pack
然后把slackware 第一張盤中的slackware目錄中的a目錄中的所有包都進(jìn)行解壓縮,以及d目錄中g(shù)libc開頭的包,d目錄中的zlib以及zsh 并且把解出來目錄,比如 /usr、etc、lib等所有目錄都復(fù)制到 /mnt/slack中;

第五步:解決依賴關(guān)系;

如果我們運(yùn)行下面的命令提示沒有/bin/bash這個文件時,我們要解決依賴關(guān)系;通過解決依賴關(guān)系,也會發(fā)現(xiàn)運(yùn)行chroot所需要的必備的基礎(chǔ)軟件包;
[root@localhost ~]# chroot /mnt/slack
如果提示缺少一些文件,我們可以自行判斷缺少哪些包;當(dāng)我們進(jìn)入/mnt/slack/bin目錄發(fā)現(xiàn),的確沒有bash這個文件,所以我們要復(fù)制一個bash過去;
[root@localhost ~]# cd /mnt/slack/bin
[root@localhost bin]# cp bash2.new bash
這時我們還要判斷 bash 所依賴的庫文件;
[root@localhost bin]# ldd  bash
出來的依賴關(guān)系,大多是glibc的,glibc被安裝在了/mnt/slack/lib/tls目錄中,我們可以根據(jù)提示一個一個的做鏈接。少什
么東西就做什么的鏈接;要看/mnt/slack/lib中是否有g(shù)libc的文件,然后做鏈接。如果是存放在tls目錄中的,也要鏈到/mnt
/slack/lib中。鏈接時要用相對路徑,不能用絕對路徑;
創(chuàng)建鏈接文件和在Windows創(chuàng)建快捷方式比較相似,用ln 命令;
#ln -s 原文件名   新文件名
什么才算解決了 bash的依賴關(guān)系了呢?直到能chroot /mmt/slack才算成功;

第六步: chroot成功,進(jìn)入Slackware系統(tǒng);

chroot 成功后,我們就能進(jìn)入Slackware系統(tǒng),然后通過pkgtool 或installpkg 工具來安裝其它的軟件包,比如 內(nèi)核什么的;
[root@localhost ~]# chroot /mnt/slack

第七步;更改/etc/fstab文件;

如果要讓一個操作系統(tǒng)獨(dú)立運(yùn)行,非得寫一寫/etc/fstab文件,對于這個您可以參考,比如 下面的這個例子,您改一改就可以用了;
/dev/hda7        swap             swap        defaults         0   0
/dev/hda6        /                reiserfs    defaults         1   1
/dev/hda1        /mnt/winc        ntfs        ro               1   0
/dev/hda3        /mnt/wind        vfat        defaults         1   0
/dev/cdrom       /mnt/cdrom       auto        noauto,owner,ro  0   0
/dev/fd0         /mnt/floppy      auto        noauto,owner     0   0
devpts           /dev/pts         devpts      gid=5,mode=620   0   0
proc             /proc            proc        defaults         0   0
none            /sys            sysfs           defaults        0   0

第八步:引導(dǎo)系統(tǒng);

要通過GRUB或LILO引導(dǎo)管理器實現(xiàn)對Slackware的引導(dǎo);不多說了,請參考 :
《系統(tǒng)引導(dǎo)管理器GRUB,為初學(xué)者指南》

5.2  通過chroot把Slackware 10.2安裝在一個映像文件中;


第一步:創(chuàng)建映像文件;

比如 我們創(chuàng)建一個名為slack.img的映像文件,體積為2G的,就可以用下面的命令;bs是每個塊的大小為1M,共創(chuàng)建2000塊;
[root@localhost ~]# dd if=/dev/zero of=slack.img bs=1M count=2000 seek=1024

第二步:創(chuàng)建文件系統(tǒng);

我們可以創(chuàng)建為ext3、fat32或reiserfs等文件系統(tǒng),創(chuàng)建文件系統(tǒng),請參考:
《存儲設(shè)備分區(qū)操作及文件系統(tǒng)管理概述》
[root@localhost ~]# /sbin/mkfs.ext3 slack.img
mke2fs 1.38 (30-Jun-2005)
slack.img is not a block special device.
Proceed anyway? (y,n) y

第三步:掛載已被格式化映像文件;

[root@localhost ~]# mkdir /mnt/slack
[root@localhost ~]# mount -o loop slack.img  /mnt/slack/

第四步以后和物理硬盤操作基本相同,省略過去;


6、有關(guān)軟件包rpm、tgz、deb等軟件包提;

發(fā)行版都有一定的軟件包格式,比如 file.rpm
、file.deb或file.tgz或file.tar.gz等;rpm格式的軟件包,一般基于Redhat或Fedora為基礎(chǔ)開發(fā)的都采用RPM格
式。因為chroot安裝操作系統(tǒng),首要的是從一個軟件包中提取文件,然后復(fù)制到文件系統(tǒng)中,所以提取文件工具也得做一點(diǎn)解說;

6.1  從rpm軟件包抽取文件;

操作的前提是得有rpm的管理工具,也就是說得有rpm等相關(guān)命令;

命令格式: rpm2cpio file.rpm |cpio -div

舉例:
[root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div
抽取出來的文件就在當(dāng)用操作目錄中的 usr 和etc中;
其實這樣抽到文件不如指定安裝目錄來安裝軟件來的方便;也一樣可以抽出文件;
為軟件包指定安裝目錄:要加 -relocate 參數(shù);下面的舉例是把gaim-1.3.0-1.fc4.i386.rpm指定安裝在 /opt/gaim 目錄中;
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
   1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim
這樣也能一目了然;gaim的所有文件都是安裝在 /opt/gaim 中,我們只是把gaim 目錄備份一下,這樣其實也算提取文件的一點(diǎn)用法;

6.2  file.tgz、file.tar.gz和file.tar.bz2的提取;

[root@localhost ~]# tar zxvf file.tgz
[root@localhost ~]# tar zxvf file.tar.gz
[root@localhost ~]# tar jxvf file.tar.bz2

6.3   file.deb的提。

[root@localhost ~]# ar x file.deb
[root@localhost ~]# tar zxvf data.tar.gz
file.deb通過ar x 來解包,然后再把data.tar.gz解開就看到相關(guān)的目錄和文件了;

6.4   file.iso文件的提;

這樣的文件在Linux主要通過mount -o loop file.iso  掛載地址;比如 ;
[root@localhost ~]# mount -o loop slackware-10.2-install-d1.iso /mnt/cdrom/

6.5   提取文件相關(guān)參考;

《文件解壓縮》
《RPM 的介紹和應(yīng)用》
http://debian.linuxsir.org
http://slack.linuxsir.org

7、chroot 成功切入新的操作系統(tǒng)后的軟件安裝問題補(bǔ)充;

如果通過chroot能進(jìn)入新安裝的操作系統(tǒng),我們就可以新操作系統(tǒng)的軟件包管理工具來安裝其它軟件包了,比如 Slackware
用的是pkgtool 或installpkg工具;Fedora 用的是 rpm 等工具;大多發(fā)行版所用的工具不盡相同,以發(fā)行版為準(zhǔn) ;

8、關(guān)于本文;

在去年的時候就想寫此文,隨著時間的推移,今天想起來的事情可能明天就忘的差不多了,所以用到chroot的時候就想寫,用不到的時候就把寫文檔的
事扔到一邊。今天正好寫關(guān)于Xen的文檔,也恰恰用到chroot方式安裝新的操作系統(tǒng),所以“被迫”中寫了一篇。雖然涉及chroot的功用少了點(diǎn),但
大體上還是把chroot說了差不多了;可能本文的名字有點(diǎn)不符合,我也不知道用什么命名標(biāo)題不好。慢慢修正中... ...

9、參考文檔;


《實例解說 fdisk 使用方法》

《存儲設(shè)備分區(qū)操作及文件系統(tǒng)管理概述》

《Linux 創(chuàng)建文件系統(tǒng)及掛載文件系統(tǒng)流程詳解》

《文件解壓縮》

《RPM 的介紹和應(yīng)用》

http://debian.linuxsir.org

http://slack.linuxsir.org

http://fedora.linuxsir.org


               
               
               

本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/1127/showart_1330171.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP