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

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

Chinaunix

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

制作U盤(pán)linux [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-07-10 22:02 |只看該作者 |倒序?yàn)g覽
輕松制作優(yōu)盤(pán)Linux
              
        
        
          自網(wǎng)絡(luò) 時(shí)間:[color="#ff6600"]2004-12-8   發(fā)稿:[color="#ff6600"]admin  責(zé)編:[color="#ff6600"]admin       點(diǎn)擊:[color="#ff6600"]加載中...
        
        
        
         
              
                     
科技進(jìn)步到今天,軟驅(qū)開(kāi)始慢慢退出市場(chǎng),取而代之的是優(yōu)盤(pán)。優(yōu)盤(pán)和軟盤(pán)相比,不但在容量上要大很多,而且在速度上也快了許多。以往建在軟盤(pán)上的Linux
由于受限于1.4MB的容量,所以多數(shù)被用來(lái)做小型路由器、防火墻之類(lèi)的應(yīng)用。而今天有了幾十MB、幾百M(fèi)B甚至上GB的優(yōu)盤(pán)后,就完全可以提供小型的
HTTP、郵件等需要更大存儲(chǔ)空間的服務(wù)了。想想看用戶(hù)只要把這個(gè)特制的優(yōu)盤(pán)插入電腦的USB接口,就可以啟動(dòng)一個(gè)小型的Linux系統(tǒng)。這個(gè)系統(tǒng)已經(jīng)有
了路由、HTTP和郵件等功能,只需快速設(shè)置一下IP等參數(shù)就可以開(kāi)始工作了。這就相當(dāng)于用戶(hù)隨身帶著一臺(tái)Linux服務(wù)器,方便極了。
    要制作優(yōu)盤(pán)Linux,首先在硬件上要滿(mǎn)足以下條件:
    1.優(yōu)盤(pán)帶有啟動(dòng)功能;
    2.主板支持USB設(shè)備啟動(dòng)(如USBZip啟動(dòng))。
    有了合適的硬件條件后,用戶(hù)就可以開(kāi)始動(dòng)手制作優(yōu)盤(pán)Linux了。以下所有工作都在Linux環(huán)境下完成,筆者的軟硬件環(huán)境如下:
    軟件環(huán)境:Federa Linux 1.0,系統(tǒng)采用GRUB做引導(dǎo)程序;
    硬件環(huán)境:P42.0GHz、主板Intel 845、內(nèi)存512MB、兩個(gè)80GB硬盤(pán)(hda、hdb)和帶啟動(dòng)功能的128MB優(yōu)盤(pán)。
    下面就開(kāi)始介紹優(yōu)盤(pán)Linux的制作過(guò)程。
    分區(qū)和格式化
    首先,將已經(jīng)設(shè)置為帶啟動(dòng)功能的優(yōu)盤(pán)插入U(xiǎn)SB接口,使用下面的命令對(duì)其進(jìn)行分區(qū)和格式化:
    # fdisk /dev/sda
    其
中/dev/sda設(shè)備指用戶(hù)的優(yōu)盤(pán)。如果用戶(hù)的機(jī)器中還有其它的SCSI設(shè)備,那么可能是/dev/sdb等。用戶(hù)使用“fdisk”刪除優(yōu)盤(pán)原來(lái)的所
有分區(qū),并將128MB的空間都分成一個(gè)Linux基本分區(qū)。接下來(lái)用戶(hù)要將其格式化為Ext2文件系統(tǒng),可以使用以下命令:
    # mkfs.ext2 /dev/sda1
    安裝GRUB
    有了已經(jīng)格式化好的Ext2的文件系統(tǒng),接下來(lái)用戶(hù)就可以在這個(gè)文件系統(tǒng)上安裝Linux的引導(dǎo)程序GRUB了。
    首先,要將格式化好的優(yōu)盤(pán)上的文件系統(tǒng)掛載到當(dāng)前的Linux系統(tǒng)中。命令如下:
    # mount /dev/sda1 /usb
    接著,要建立GRUB所需要的目錄,并將當(dāng)前使用的Linux系統(tǒng)中的GRUB相關(guān)文件(/boot/grub/目錄下的stage1和stage2)復(fù)制到優(yōu)盤(pán)的/usb/boot/grub下。命令如下:
# mkdir /usb
# mkdir /usb/boot
# mkdir /usb/boot/grub
# cp /boot/grub/stage* /usb/boot/grub/
    然后,使用“grub”命令將GRUB引導(dǎo)程序安裝在優(yōu)盤(pán)上。具體可以參考如下:
grub> root (hd2,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd2)
Checking if “/boot/grub/stage1” exists... yes
Checking if“/boot/grub/stage2”exists... yes
Checking if“/boot/grub/e2fs_stage1_5”exists... no
Running“install /boot/grub/stage1 (hd2) /boot/
grub/stage2 p /boot/grub/grub.conf”... succeeded
Done.
grub>quit
    上面操作中的像“(hd2)”這樣的參數(shù)可能隨用戶(hù)機(jī)器的硬盤(pán)數(shù)量和分布情況的差異會(huì)有所不同。在安裝完GRUB后,還要對(duì)其進(jìn)行配置。用戶(hù)在優(yōu)盤(pán)的/usr/boot/grub目錄下創(chuàng)建grub.conf文件,命令如下:
    # vi /usb/boot/grub/grub.conf
    grub.conf文件的內(nèi)容如下:
default=0
timeout=10
title My USB Linux
root (hd0,0)
kernel /vmlinuz
    保存退出,GRUB配置完成。此時(shí)可以測(cè)試用優(yōu)盤(pán)啟動(dòng)機(jī)器,會(huì)看到GRUB的啟動(dòng)畫(huà)面和選項(xiàng)“My USB Linux”了。
    注意在測(cè)試優(yōu)盤(pán)啟動(dòng)時(shí),將兩個(gè)硬盤(pán)的電源線都要拔掉,因?yàn)樵谏厦娴膅rub.conf中設(shè)定的根分區(qū)是hd0。
    編譯內(nèi)核
    首
先用戶(hù)要根據(jù)用途考慮使用哪一個(gè)版本的內(nèi)核。比如要使用Iptables來(lái)建立防火墻,那就一定要選擇2.4以上的版本。但要記住,版本并不是越高越好。
選定內(nèi)核的版本后,從kernel.org上下載對(duì)應(yīng)的源碼。在動(dòng)手配置內(nèi)核之前,還要對(duì)內(nèi)核的源碼做一個(gè)小小的修改。從內(nèi)核的源碼樹(shù)中找到init目錄
下的do_mounts.c文件,請(qǐng)根據(jù)自己的源碼版本做類(lèi)似下面的修改:
* Allow the user to distinguish between failed open
* and bad superblock on root device.
*/
-  printk (“VFS: Cannot open root device“%s”or %s”,
+  printk (“VFS: Cannot open root device“%s”or %s”,
   retrying in 1 second.", root_device_name, kdevname (ROOT_DEV));
-  printk (“Please append a correct “root=”boot option”);
-  panic(“VFS: Unable to mount root fs on %s”,
-  kdevname(ROOT_DEV));
+  printk (“You may need to append a correct“root=”boot option”);
+  printk (“or wait for the root device to become ready.”);
+
+  /* wait 1 second and try again,
+  * allowing time for hubs/devices to become ready */
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(HZ);
+ goto retry;
        )
  panic(“VFS: Unable to mount root fs on %s”, kdevname(ROOT_DEV));
    做
這一步修改是考慮到,通常在Linux啟動(dòng)過(guò)程中,內(nèi)核解壓運(yùn)行完成后,會(huì)加載root分區(qū),然后執(zhí)行root分區(qū)上的init腳本。當(dāng)用戶(hù)使用硬盤(pán)時(shí),
硬盤(pán)的初始化速度很快。在內(nèi)核運(yùn)行完成之前,因?yàn)橛脖P(pán)已經(jīng)準(zhǔn)備就緒了,所以?xún)?nèi)核可以順利加載硬盤(pán)上的root分區(qū)。然而優(yōu)盤(pán)初始化速度要比硬盤(pán)慢多了。這
樣就會(huì)出現(xiàn)內(nèi)核啟動(dòng)完成后,因優(yōu)盤(pán)還沒(méi)有完成初始化而導(dǎo)致root分區(qū)無(wú)法被加載的現(xiàn)象。所以要想使用優(yōu)盤(pán)啟動(dòng)Linux就需要延長(zhǎng)內(nèi)核加載root分區(qū)
的等待時(shí)間,辦法就是對(duì)系統(tǒng)內(nèi)核初始化代碼do_mounts.c作類(lèi)似上面的修改。
    當(dāng)然還有其它的解決辦法,比如在內(nèi)核啟
動(dòng)時(shí),先將一個(gè)臨時(shí)的root分區(qū)設(shè)在RAM disk上,然后等待幾秒鐘,在優(yōu)盤(pán)差不多初始化完成后再繼續(xù)啟動(dòng)。這種方法就要選上對(duì)“RAM
disk”的支持,而且還要修改initrd.img文件等。所以除非用戶(hù)想同時(shí)用RAM
disk做一些其它的用途(如運(yùn)行特定程序或加載其它的驅(qū)動(dòng)),否則就不建議使用這種方法。
    在完成源碼的修改后,就可以開(kāi)始配置內(nèi)核了。在配置過(guò)程中將所有需要的功能和驅(qū)動(dòng)都編譯進(jìn)內(nèi)核中去。注意要將一些不必要的模塊去掉,比如聲卡和顯卡驅(qū)動(dòng)等。還要特別注意對(duì)網(wǎng)絡(luò)方面的支持要廣泛一些,要盡量將可能遇到的網(wǎng)卡的驅(qū)動(dòng)編譯進(jìn)內(nèi)核。
    常
見(jiàn)的USB芯片類(lèi)型有EHCI、OHCI和UHCI三種。因?yàn)閷?duì)于常見(jiàn)的PC機(jī)主板來(lái)說(shuō)一般使用的是UHCI芯片的USB控制器,所以在USB設(shè)備的配置
中,要對(duì)應(yīng)的選上對(duì)“UHCI Alternate Driver (JE) support”的支持。另外,還要選上“Preliminary
USB device filesystem”。因?yàn)樵贚inux中,優(yōu)盤(pán)等類(lèi)似設(shè)備都是被模擬成SCSI硬盤(pán)而進(jìn)行訪問(wèn)。以下是執(zhí)行“make
menuconfig”命令配置內(nèi)核時(shí)關(guān)于USB的選項(xiàng)實(shí)例,可供參考:
Support for USB
[ ]   USB verbose debug messages
--- Miscellaneous USB options
  •    Preliminary USB device filesystem
    --- USB Host Controller Drivers
       UHCI Alternate Driver (JE) support
       OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support
    --- USB Device Class drivers
       USB Mass Storage support
    [ ]     USB Mass Storage verbose debug
    [ ]     Freecom USB/ATAPI Bridge support
    [ ]     ISD-200 USB/ATA Bridge support
    [ ]     Microtech CompactFlash/SmartMedia support
        細(xì)心完成內(nèi)核配置后,最后就是編譯內(nèi)核了。內(nèi)核的編譯方法大家應(yīng)該很熟悉了,通常是使用“make mrproper”、“make menuconfig”、“make dep”、“make clean”和“make bzImage”等指令來(lái)編譯。
        編譯完成后,新的內(nèi)核就是arch/i386/boot/目錄中的bzImage文件,將其復(fù)制到優(yōu)盤(pán)上,命名如下:
        # cp arch/i386/boot/bzImage /usb/vmlinuz
        編譯成功的內(nèi)核通常不會(huì)超過(guò)1MB。在實(shí)際制作優(yōu)盤(pán)Linux的過(guò)程中,定制內(nèi)核是非常關(guān)鍵的。很多人失敗在這個(gè)地方。通常要多次嘗試,才能生成適合的內(nèi)核。
        目錄和文件
        內(nèi)核啟動(dòng)后,要加載root文件系統(tǒng)。在Linux中,root文件系統(tǒng)中包含了系統(tǒng)必須的目錄、設(shè)備文件、可執(zhí)行文件和配置文件等。
        首先創(chuàng)建系統(tǒng)必需的目錄,示意如下:
    # mkdir bin etc etc/rc.d proc tmp var dev mnt
    # chmod 755 bin etc etc/rc.d tmp var dev mnt
    # chmod 555 proc
        接著要用“mknod”命令在dev目錄下建立一些基本的設(shè)備文件,不可從原系統(tǒng)/dev目錄中復(fù)制。具體請(qǐng)參考下列實(shí)例命令:
    # cd dev
    # mknod tty c 5 0
    # mknod console c 5 1
    # chmod 666 tty console
    # mknod tty0 c 4 0
    # chmod 666 tty0
    # mknod ram0 b 1 0
    # chmod 600 ram0
        然
    后生成一些常用命令和工具,比如sh、ls、cd和ifconfig等。用戶(hù)可以使用原來(lái)系統(tǒng)中的這些命令,不過(guò)要對(duì)應(yīng)地將其所用到的動(dòng)態(tài)連接庫(kù)也復(fù)制到
    優(yōu)盤(pán)上,或者是重新進(jìn)行靜態(tài)編譯,然后將二進(jìn)制文件復(fù)制到優(yōu)盤(pán)上。這些過(guò)程都不輕松,如果想研究Linux,或者是想在優(yōu)盤(pán)Linux上使用Glibc的
    話,可以自己動(dòng)手來(lái)做一下。對(duì)于大多數(shù)人,可以使用BusyBox工具箱來(lái)做這件事。BusyBox提供了一個(gè)很小的可執(zhí)行程序busybox。用戶(hù)通過(guò)
    鏈接它可以為系統(tǒng)提供ls、rm、cp和init等多種命令。busybox的安裝過(guò)程很簡(jiǎn)單。在Fedora
    Linux中已經(jīng)自帶,用戶(hù)也可以自行下載源碼來(lái)編譯安裝。安裝完后,可以將busybox產(chǎn)生的文件復(fù)制到優(yōu)盤(pán)中,具體可以參考其官方網(wǎng)站
    http:// www.busybox.net上的說(shuō)明。
        最后,還要建立一些配置文件,比如/etc/rc.d/inittab、/etc/rc.d/rc.sysinit和/etc/fstab等。下面是這幾個(gè)文件的簡(jiǎn)單實(shí)例,僅供參考:
    1./etc/rc.d/inittab
    ::sysinit:/etc/rc.d/rc.sysinit
    ::askfirst:/bin/sh
    2./etc/rc.d/rc.sysinit
    #!/bin/sh
    mount -a
    3./etc/fstab
    proc /proc proc defaults 0 0
        完成上面這些工作之后,就可以測(cè)試這個(gè)小型的優(yōu)盤(pán)Linux了。

    啟動(dòng)時(shí),先是GRUB引導(dǎo),接下來(lái)就是內(nèi)核解壓和初始化,然后調(diào)用/sbin/init,由init來(lái)調(diào)用/etc/inittab中的各種程序運(yùn)行(比
    如加掛各種分區(qū)等),最后在console上啟動(dòng)一個(gè)Shell程序,這樣就完成了啟動(dòng)。如果在啟動(dòng)中遇到問(wèn)題,還要反復(fù)進(jìn)行修改和測(cè)試,這中間的過(guò)程就
    要靠自己去摸索了。
        優(yōu)盤(pán)Linux的應(yīng)用
        創(chuàng)建和定制完Linux系統(tǒng)所需的目錄結(jié)構(gòu)和文件之后,就已經(jīng)完成了一個(gè)小型的Linux系統(tǒng)了。這個(gè)小型的Linux系統(tǒng)主要可以有以下幾個(gè)方面的應(yīng)用。
        做為應(yīng)急盤(pán)
        當(dāng)Linux系統(tǒng)故障時(shí),可以用這個(gè)優(yōu)盤(pán)啟動(dòng)系統(tǒng),然后將原系統(tǒng)的硬盤(pán)掛進(jìn)文件系統(tǒng),進(jìn)行診斷和修復(fù)。盤(pán)中可以放入一些常用的診斷工具和軟件。
        提供應(yīng)用服務(wù)
        此
    時(shí)這個(gè)小型的Linux系統(tǒng)本身已經(jīng)可以提供路由和防火墻等功能了。不過(guò)用戶(hù)還可以加入其它的應(yīng)用服務(wù),這要視用戶(hù)自己的需要而定。比如一個(gè)Web開(kāi)發(fā)人
    員,可以裝上MySQL、Apache、PHP和CVS等服務(wù)。這些服務(wù)可以先在其它的Linux上靜態(tài)編譯好,然后將其復(fù)制到優(yōu)盤(pán)上。
        其它
        優(yōu)盤(pán)還可以有其它的用途,比如作為密匙盤(pán),為L(zhǎng)inux的啟動(dòng)或應(yīng)用程序提供訪問(wèn)控制認(rèn)證等。(T111)
                   
                   
                   

    本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u/2222/showart_1992356.html
  • 您需要登錄后才可以回帖 登錄 | 注冊(cè)

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

      

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

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP