1. 程式人生 > >從ramdisk根檔案系統啟動Linux成功,及使用initramfs啟動linux

從ramdisk根檔案系統啟動Linux成功,及使用initramfs啟動linux

下面兩篇文章是ARM9論壇上的講解ramdisk檔案系統的很不錯的文章

今天做了個試驗,讓Linux2.6.29.4從ramdisk根檔案系統啟動成功,總結一下。

其中涉及的內容較多,很多東西不再詳述,如需深入研究請查閱相關資料(百度或谷歌一下一大堆)。
開發環境:Fedora 9
交叉編譯工具鏈:arm-linux-gcc 4.3.2 with EABI
嵌入式Linux核心版本:2.6.29.4-FriendlyARM。昨天寫貼子的時候具體記不清了,今天起來啟動開發板用uname -r查一下,就是叫做2.6.29.4-FriendlyARM,帖子已經改好了。本文就是友善之臂的2.6.29.4-FriendlyARM的那個版本的核心的基礎上改的。其它版本的應該也類似,僅供參考。
開發板:mini2440-128M Nand Flash
Bootloader:u-boot-2009.11
具體步驟如下:
1.解壓核心原始碼樹

解壓linux-2.6.29-mini2440-20090708.tgz到自己的工作目錄,會生成一個友善之臂修改過的並且有幾個mini2440預設配置檔案的核心原始碼目錄linux-2.6.29。具體步驟參照友善之臂mini2440開發板使用者手冊,具體不詳述了。

2.修改核心配置選項
進入核心原始碼目錄linux-2.6.29目錄
#cp config_mini2440_t35 .config
#make menuconfig ARCH=arm
開啟配置選單,修改兩個配置項,分別是:
a):General setup-->選擇 Initial RAM filesystem and RAM disk...... 項

b):Device Drivers-->Block devices-->選擇 RAM block device support 項

並檢查Optimize for size是否被選中,如果沒有則選中,此項優化核心大小,根據需要進行配置。
修改(8192)Default RAM disk size kbytes選項為(4096)Default RAM disk size kbytes,之所以修改是因為我之後製作的ramdisk是4096KB大小的。當然如果你想製作8192KB大小的ramdisk,這裡就要對應為8192了,以此類推。但是最小系統嘛,是不用那麼大的ramdisk的。此項的預設配置就是(4096),以前我改過這個配置,所以是(8192)了。如果這個大小和你做的ramdisk不匹配,則啟動時仍然會出現kernel panic核心恐慌
,提示ramdisk格式不正確,掛載不上ramdisk。
然後特別要注意的一點是,ramdisk是一種記憶體虛擬磁碟技術,實質上並不是一種檔案系統,它使用的檔案系統時ext2檔案系統。所以一定要在make menuconfig ARCH=arm的時候進入File systems選單,選上<*> Second extended fs support。以提供核心對ext2檔案系統的支援。我以前新增過了ext2檔案系統了,所以開始的時候在此沒有說明,在此為了說明為什麼有的人照著我的方法做了,但是仍然kernel panic,特別把這一步也加上。
然後儲存配置退出。
這樣就為核心新增好了ramdisk啟動功能和ramdisk的驅動支援了。

3.修改核心啟動引數
方法有二:
a):修改.config的第310行,修改CONFIG_CMDLINE=""的定義
修改為CONFIG_CMDLINE="initrd=0x31000000,0x200000 root=/dev/ram rw init=/linuxrc console=ttySAC0 mem=64M"
儲存。
意思為從ramdisk啟動,ramdisk壓縮檔案起始地址在記憶體地址0x31000000處,檔案大小為0x200000。
此引數也可以在make menuconfig ARCH=arm時進入Boot options選單,然後在Default kernel command string裡修改。效果是一樣的。
b):或者不修改.config的的第310行CMDLINE定義,而是用u-boot的bootargs環境變數來傳遞啟動引數。
同樣也是修改該環境變數為bootargs=initrd=0x31000000,0x200000 root=/dev/ram rw init=/linuxrc console=ttySAC0 mem=64M
並saveenv儲存u-boot環境變數
以上a),b)的效果是一樣的。

4.編譯核心
#make zImage ARCH=arm CROSS_COMPILE=arm-linux-
然後是二十分鐘左右的等待。
編譯完成後在當前目錄下就出現了zImage核心映像了。

好像友善之臂把核心原始碼目錄裡的uImage目標給註釋了,以前在論壇裡看到過有人說,直接make uImage好像提示沒有uImage的目標。所以我就先製作zImage,然後再用u-boot的mkimage工具轉化為uImage。其實uImage就是在zImage的開頭部分增加了一個64位元組的核心映像說明。說明一下:zImage是ARM Linux常用的一種壓縮映像檔案,uImage是U-boot專用的映像檔案,它是在zImage之前加上一個長度為0x40的“頭”,說明這個映像檔案的型別、載入位置、生成時間、大小等資訊。換句話說,如果直接從uImage的0x40位置開始執行,zImage和uImage沒有任何區別。另外,Linux2.4核心不支援uImage,Linux2.6核心加入了很多對嵌入式系統的支援,但是uImage的生成也需要設定。


5.製作uImage核心映像
由於我使用的Bootloader是u-boot,所以要將zImage轉化為uImage,方法如下:
#mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -n "Linux kernel Image" -d zImage uImage-ramdisk
說明:mkimage工具是u-boot格式uImage核心映像製作工具。如果成功編譯u-boot之後,它會在u-boot原始碼樹下的tools目錄之下。建議將其拷貝到宿主機的/sbin/目錄下,以方便使用。mkimage使用時的具體引數不再詳述,不清楚的請自己查閱。

6.製作ramdisk根檔案系統(實際上是建立根檔案系統)
該過程是製作ramdisk根檔案系統的核心步驟
,方法如下:
a)建立根檔案系統目錄:
#cd轉入到你的工作目錄。
#mkdir rootfs
#cd rootfs
#mkdir bin dev etc lib proc sbin sys usr mnt tmp var
#mkdir usr/bin usr/lib usr/sbin lib/modules

b)建立最基本的裝置檔案:
#cd dev
#mknod -m 666 console c 5 1
#mknod -m 666 null c 1 3
#cd ..

c)安裝/etc配置檔案:
這裡可以直接把友善之臂的root_qtopia裡的幾個基本的配置檔案拷貝過來,只拷貝必要的即可,並對其內容進行刪減,因為我做的ramdisk並不包含Qtopia等,全拷貝過來也沒有用。
我是從網上找的最小系統的etc配置檔案直接解壓到我製作的根檔案系統裡了,並做參照友善之臂的root_qtopia添加了一些內容,見最後的說明。
操作如下:
#tar etc.tar.gz -C /xxx/rootfs
xxx表示你要製作的rootfs所在的目錄。

d)編譯核心模組:
方法是如下:
進入Linux核心原始碼目錄(linux-2.6.29)
#make modules ARCH=arm CROSS_COMPILE=arm-linux-

e)安裝核心模組:
#make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs//嵌入式中的核心模組都要在檔案系統中
xxx表示你要製作的rootfs所在的目錄。

f)配置busybox
進入busybox目錄執行#make menuconfig
  進入Busybox Settings -> build Options ->選中"Build busybox as a static binary“,即靜態連結,免去拷貝大量的庫檔案。
  Installation Options -> 選中"Don't use /usr",以免busybox不慎被安裝到宿主機系統的相應目錄下,破壞宿主機系統。
  Busybox Installation Prefix (/xxx/rootfs),修改該選項表明編譯後的busybox將安裝到該位置。

g)編譯、安裝busybox
#make ARCH=arm CROSS_COMPILE=arm-linux-
幾分鐘編譯完成後
#make install
安裝到Busybox Installation Prefix (/xxx/rootfs)設定的目錄裡。當前為我要製作的根檔案系統目錄(/xxx/rootfs)。
//完成根檔案系統的建立
h)製作ramdisk根檔案系統映象
方法如下:
http://genext2fs.sourceforge.net/下載可以簡單方便的製作ramdisk檔案系統的工具genext2fs,這樣就不用像網上大多數說的那樣繁瑣的製作ramdisk映像了,當前最新版本為genext2fs-1.4.1.tar.gz 。
編譯生成該工具genext2fs,並將其放入宿主機的/sbin/目錄下以方便使用。
跳轉到要製作的rootfs的上一級目錄
#genext2fs -b 4096 -d rootfs ramdisk
-b是指製作的ramdisk大小為4096K位元組
-d是指要製作成ramdisk的根檔案系統目錄
最後的ramdisk是製作出來的ramdisk的名字,當然可以改名了。
#gzip -9 -f ramdisk
將該ramdisk以最優方式壓縮為ramdisk.gz

7.下載核心映像和ramdisk映像
啟動u-boot,暫停u-boot自動啟動,在u-boot命令列中鍵入如下命令下載核心和ramdisk映像:
[[email protected]]# tftp 0x32000000 uImage-ramdisk
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 192.168.31.117; our IP address is 192.168.31.230
Filename 'uImage-ramdisk'.
Load address: 0x32000000
Loading: T T #################################################################
         #################################################################
         #
done
Bytes transferred = 1917752 (1d4338 hex)
[[email protected]]# tftp 0x31000000 ramdisk.gz
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 192.168.31.117; our IP address is 192.168.31.230
Filename 'ramdisk.gz'.
Load address: 0x31000000
Loading: T T #################################################################
         ####
done
Bytes transferred = 1002594 (f4c62 hex)

8)使用ramdisk根檔案系統啟動核心
在u-boot命令列下鍵入如下命令啟動系統:
bootm 0x32000000
## Booting kernel from Legacy Image at 32000000 ...
   Image Name:   Linux-2.6.29.4-FriendlyARM
   Created:       2010-04-09   15:13:52 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:     1917688 Bytes =   1.8 MB
   Load Address: 30008000
   Entry Point:   30008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.............................................................
................................................................ done, booting t
he kernel.
Linux version 2.6.29.4-FriendlyARM ([email protected]ldomain) (gcc version 4.3
.2 (Sourcery G++ Lite 2008q3-72) ) #3 Fri Apr 9 23:13:36 CST 2010
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: FriendlyARM Mini2440 development board
Memory policy: ECC disabled, Data cache writeback
……中間過長的內容在此省略了……
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem) on device 1:0.
Freeing init memory: 136K
eth0: link down

Processing /etc/profile... Done

# eth0: link up, 100Mbps, full-duplex, lpa 0x45E1

至此係統啟動成功。

----------------------------------------------------------------------------------
後記:由於友善之臂mini2440預設的配置檔案是將驅動等直接編譯到核心裡去了,並沒有使用核心模組。所以上述第6步製作根檔案系統中的d)編譯和e)安裝核心模組的步驟可以不做。我就沒有編譯核心模組。因為參照友善之臂的root_qtopia根檔案系統發現/lib/modules/`uname -r`里根本沒有東西。而且以前用友善之臂的config_mini2440_t35預設配置編譯核心模組的時候。發現友善只做了個hello_modules的核心模組示例。在此我們不需要使用這個hello_modules,所以這兩步就略過去了。

說明:由於最小系統裡的etc配置檔案沒有寫自動啟動網絡卡的指令碼,所以我做的ramdisk開始時並不能自動啟動網絡卡。後來參照友善之臂的root_qtopia根檔案系統裡的指令碼做如下修改,即可自動啟動指令碼。
修改如下:
修改要製作的ramdisk根檔案系統的rootfs下的/etc/init.d/rcS檔案
在最下邊新增如下兩行命令即可自動啟動網絡卡:
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 192.168.31.230 netmask 255.255.255.0 up

這個方法是通過分析友善之臂的root_qtopia根檔案系統的啟動流程時發現的。
通過分析友善之臂的root_qtopia根檔案系統,我們還能發現更多的內容。在此不在詳述。

鍛鍊一下自己分析解決問題的能力吧。呵呵。

使用initramfs啟動Linux成功,再次總結一下

前天做了個從ramdisk根檔案系統啟動Linux的實驗,寫了個帖子。經總版主kasim大俠的提攜,得知現在基於Linux的發行版通常採用initramfs代替initrd,架構更簡單,應用也更靈活一些。正好今天晚上沒事,就做了一下使用initramfs啟動Linux,寫個帖子總結一下。
這個帖子不會詳述具體的每一個步驟,僅僅說明它和使用ramdisk啟動系統時所需要做的步驟的區別。事實上我也是在前天配置編譯核心使用ramdisk啟動系統的步驟的基礎上改的。這裡只總結使用initramfs和使用ramdisk各自配置核心選項的主要區別和遇到的一些問題。

參照我的另一個帖子《從ramdisk根檔案系統啟動Linux成功,總結一下》
http://www.arm9home.net/read.php?tid-5610.html


開發環境:Fedora 9
交叉編譯工具鏈:arm-linux-gcc 4.3.2 with EABI
嵌入式Linux核心版本:2.6.29.4-FriendlyARM。本文就是友善之臂的2.6.29.4-FriendlyARM的那個版本config_mini2440_t35的核心的基礎上改的。其它版本的應該也類似,僅供參考。
開發板:mini2440-128M Nand Flash
Bootloader:u-boot-2009.11


主要的不同點:
步驟2.修改核心配置選項
進入核心原始碼目錄linux-2.6.29目錄
#cp config_mini2440_t35 .config
#make menuconfig ARCH=arm
開啟配置選單,配置使用ramdisk啟動系統時需要設定兩個選項,這裡只需要配置一個配置項:
General setup-->選擇 Initial RAM filesystem and RAM disk...... 項

原因很簡單,我們使用的是initramfs,而不是ramdisk,所以不用配置ramdisk的驅動支援項Device Drivers-->Block devices-->RAM block device support 項。相應的之後的(4096)Default RAM disk size kbytes等相關預設配置選項就不會再出現了。

另外initramfs技術和ramdisk技術的另一個重要的區別就是initramfs並不是在記憶體中模擬出一個磁碟,所以也就不在需要ramdisk中所需的ext2驅動支援。所以,File systems選單下的ext2檔案系統支援< > Second extended fs support選項就可以取消了。

在這一步還有一個重要的區別就是需要在General setup-->Initial RAM filesystem and RAM disk...... 項的相關項(/work/rootfs) Initramfs source file(s)中填寫你要製作成initramfs格式的根檔案系統目錄,在這裡我要做的根檔案系統的目錄是/work/rootfs。

步驟6.製作initramfs根檔案系統
h)製作initramfs根檔案系統映象

製作最小系統根檔案系統的步驟和以前製作ramdisk根檔案系統的步驟基本一致,這裡只說明最後一步有何不同。
因為initramfs根檔案系統啟動時執行的第一個程式是init,而不是linuxrc,所以在此,我們製作的根檔案系統需要新增一個init檔案,相應的linuxrc檔案就不再需要了。
按照如下方式修改根檔案系統
#cd /work/rootfs
#ln -s bin/busybox init
這樣就為busybox建立了一個軟連結init,這個檔案就是我們要建立的init檔案。

另外就是我們製作ramdisk根檔案系統映象的時候使用的是genext2fs工具,在此我們製作initramfs根檔案系統映象時,並不需要額外的步驟,而是在你編譯Linux核心的時候就自動生成了。自動生成的initramfs根檔案系統映象在Linux原始碼樹的usr目錄下。名字叫initramfs_data.cpio.gz它是gz格式的壓縮檔案。

這樣就有一個問題,在編譯可以使用initramfs啟動的核心的時候,它的配置選項有一個相關項,就是要在(/work/rootfs) Initramfs source file(s)中填寫你要製作成initramfs格式的根檔案系統目錄。這樣就要求我們在編譯核心的時候,首先先把根檔案系統做好。值得注意的是我們按照這個方法制作出來的核心映象實際上比原來的大了許多,這是因為我們在做這一步的時候,實際上是將initramfs根檔案系統直接合併到核心映象裡邊了。這樣,合二為一的映象就不再需要單獨燒寫根檔案系統映象了,相應的,啟動核心時的引數就不需要新增initrd=……來指定initramfs的位置了。當然如果你不想將initramfs合併到核心中,直接用配置ramdisk的核心來啟動系統即可,不過這時你就必須使用initrd=……來指定initramfs的位置了,並且第二個引數initramfs根檔案系統映像的大小必須指定為實際大小,否則提示映像校驗錯誤,無法啟動系統。

其它的就沒有區別了。

-------------------------------------------------------------------
一切工作做好了,uImage和initramfs_data.cpio.gz都已經編譯出來了。
用u-boot下載核心映象和initramfs根檔案系統映象,此時啟動系統,最終核心恐慌kernel panic啟動失敗。
在超級終端的最後一行顯示錯誤如下:
Unpacking initramfs...<0>Kernel panic - not syncing: bad gzip magic numbers

上網查閱了相關的錯誤,解決方案如下:
  “這個問題已經解決;
       是因為,我在u-boot傳遞給核心的initrd=bufptr,size;
  size這個引數中,大小比實際的initramfs的大小還大;
  導致unpack_to_rootfs在呼叫gunzip進行initramfs壓縮包進行解壓時,gunzip無法判斷到initramfs壓縮包的結束地址;進行重複的解  壓導致的;(gunzip這個東東真不智慧啊,呵呵)

  將size設定和initramfs壓縮包的大小一致就OK了;”

如法炮製,系統啟動成功。

相關推薦

ramdisk檔案系統啟動Linux成功使用initramfs啟動linux

下面兩篇文章是ARM9論壇上的講解ramdisk檔案系統的很不錯的文章 今天做了個試驗,讓Linux2.6.29.4從ramdisk根檔案系統啟動成功,總結一下。 其中涉及的內容較多,很多東西不再詳述,如需深入研究請查閱相關資料(百度或谷歌一下一大堆)。 開發環境:Fedo

Ramdisk檔案系統啟動Linux(單獨的ramdisk映象)

開發環境:Ubuntu10.04 交叉編譯工具鏈:univore32-linux-gcc 4.3.2  嵌入式Linux核心版本:2.6.29.4-FriendlyARM。 開發板:SEP6200 Bootloader:u-boot-2009.11 具體步驟如下:1.解壓核心原始碼樹 解壓kernel.ta

initramfs檔案系統啟動Linux

origin: http://blog.chinaunix.net/uid-26969690-id-3207803.html開發環境:Fedora 9 交叉編譯工具鏈:arm-linux-gcc 4.3.2 with EABI嵌入式Linux核心版本:2.6.29.4-Fr

NFS啟動Linux並掛載檔案系統

要搞嵌入式NFS確實必不可少,否則每次都要重啟煩都煩死。這裡總結在NFS建立過程中遇到的幾個問題。 下面記錄幾個遇到的問題 VFS: Cannot open root device “

怎樣網路上核心和檔案系統啟動開發板

首先在ubuntu虛擬機器上要有nfs伺服器 1.啟動開發板uboot,輸入 下面的命令 set bootargs console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.19:/work/nfs_root/tmp/fs_mini

移植好uboot和基於initramfs檔案系統Linux核心的開發板的啟動過程

我們移植好uboot和Linux核心之後,當我們重啟之後,開發板首先做的事情就是將nandflash前4K的內容複製到SRAM中去,由於SRAM只有4K大小,所以我們必須將初始化CPU、記憶體、中斷、關閉開門狗以及nandflash中uboot拷貝到SDRAM中的的程式都放

Linux啟動過程分析》核心掛載檔案系統

說明:本文基於Linux2.6.29核心分析;其他核心版本僅供參考。   前邊通過原始碼情景分析,看過了匯流排、裝置、驅動及其發現機制,Linux2.6核心udev裝置節點建立相關;對於檔案系統,一直望而生畏,但核心學習、這部分又不可能繞的過去。目前對VFS中使用的has

JZ2440設定開發板啟動或使用NFS作為檔案系統啟動

進入u-boot介面,選擇q退出主介面,進入 OpenJTAG>  1、從開發板根檔案系統正常啟動:    OpenJTAG> set bootargs noinitrd root=/dev/mtdblock3 init=/linuxrc console

基於AT91SAM9X35EK的嵌入式Linux+UBI檔案系統移植成功

AT91Bootstrap 3.6.0  NAND: Done to load image U-Boot 2014.04 (Feb 15 2016 - 14:56:42) CPU: AT91SAM9X35 Crystal frequency:       12 MHz CPU clock        :  

讀手冊開始讓zynq板卡跑起linux(二)----利用initrd和initramfs分別製作檔案系統

1.initrd 與 initramfs的區別 Linux核心在初始化之後會執行init程序,而init程序會掛載我們的根檔案系統,但由於init程式也是在根檔案系統上的,所以這就有了悖論。Linux採用兩步走的方法來解決這個問題。Linux2.6版以前的方法是:除了核心v

linux 核心啟動流程(涉及到檔案系統的問題)

Linux核心啟動及檔案系統載入過程 當u-boot開始執行bootcmd命令。就進入Linux核心啟動階段,與u-boot類似,普通Linux核心的啟動過程也能夠分為兩個階段,但針對壓縮了的核心如uImage就要包含核心自解壓過程了。本文以linux-2.6.37版原始

Beaglebone Black——理論篇beaglebone black啟動——串列埠獲得SPL、U-BOOTTFTP伺服器獲得核心NFS伺服器掛載檔案系統

          一般來講啟動一個系統所需的bootloader(SPL/MLO、u-boot.img)和根檔案系統(/boot下包含核心zImage)要麼是放在NAND Flash,或者是SD卡,或者是eMMC,或者是USB中,那麼還有一種方式,就是所需要的這些檔案全部

u-boot通過nfs伺服器下載核心並且啟動核心,掛載檔案系統的方法

http://www.linuxidc.com/Linux/2013-08/89154.htm http://blog.csdn.net/sinat_31500569/article/details/53120530 參考連結 首先要在電腦上安裝nfs伺服器 1.執行命令

U-boottftp伺服器啟動掛載到NFS檔案系統

在uboot輸入設定下面的變數: # mac address可以使用uboot目錄tools下的gen_eth_addr工個來產生 setenv ethaddr <mac address>

[置頂] 《Linux啟動過程分析》核心掛載檔案系統 http://blog.csdn.net/tankai19880619/article/details/12093239

說明:本文基於Linux2.6.29核心分析;其他核心版本僅供參考。   前邊通過原始碼情景分析,看過了匯流排、裝置、驅動及其發現機制,Linux2.6核心udev裝置節點建立相關;對於檔案系統,一直望而生畏,但核心學習、這部分又不可能繞的過去。目前對VFS中使用的hash表還未做研究,它在dent

Linux檔案系統介紹

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Linux檔案系統製作與各種掛載方式的實現

Linux根檔案系統的製作 什麼是檔案系統 計算機的檔案系統是一種儲存和組織計算機資料的方法,它使得對其訪問和查詢變得容易,檔案系統使用檔案和樹形目錄的抽象邏輯概念代替了硬碟和光碟等物理裝置使用資料塊的概念,使用者使用檔案系統來儲存資料不必關心資料實際儲存在硬碟(或者光碟)的地址為多少的資料

uboot設定bootargs啟動檔案系統

u-bootargs bootargs是環境變數中的重中之重,甚至可以說整個環境變數都是圍繞著bootargs來設定的。bootargs的種類非常非常的多,我們平常只是使用了幾種而已,感興趣的可以看看這篇文章說的很全:http://blog.chinaunix.net/u2/79570/

linux檔案系統 /etc/resolv.conf 檔案詳解

大家好,今天51開源給大家介紹一個在配置檔案,那就是/etc/resolv.conf。很多網友對此檔案的用處不太瞭解。其實並不複雜,它是DNS客戶機配置檔案,用於設定DNS伺服器的IP地址及DNS域名,還包含了主機的域名搜尋順序。該檔案是由域名解析器(resol

Linux檔案系統中的比較常見的目錄結構

/bin 存放二進位制可執行命令的目錄 /dev 存放裝置檔案的目錄 /etc 存放系統管理和配置檔案的目錄 /home 使用者主目錄,比如使用者user的主目錄就是/home/user,可以用~user表示 /lib 存放動態連結共享庫的目錄 /sbin存放系