如何抓取 rootfs
1. 使用 losetup 來掛載 arm.img 至 /mnt 目錄
2. 建立一個 rootfs 目錄
mkdir rootfs
3. 切換至 rootfs 目錄
cd rootfs
4. 複製 arm.img 中之 rootfs
rsync -av /mnt/* .
複製完畢後我們即可以開始進行 rootfs 瘦身,以利存入虛擬 SD card。
** 請注意,複製完畢後我們即可將 /mnt 解除掛載,以免不小心刪錯檔案 **
*** 弄清楚 cp 與 rsync 指令不同處 ? ***
5. rootfs 如何瘦身 ?
6. 壓縮 rootfs 以供之後使用
請在 rootfs 目錄中執行底下指令:
rootfs # tar cfva ../rootfs.tar.bz2 *
2012年11月28日 星期三
2012年11月21日 星期三
安裝 qemu arm 版 Debian Linux
在 Qemu 安裝 ARM 環境
準備
1. ARM iso 檔 - http://debian.nctu.edu.tw/debian-cd/6.0.6/armel/iso-cd/debian-6.0.6-armel-CD-1.iso
2. ARM installer 檔案
a. http://debian.nctu.edu.tw/debian/dists/squeeze/main/installer-armel/current/images/versatile/netboot/initrd.gz
b. http://debian.nctu.edu.tw/debian/dists/squeeze/main/installer-armel/current/images/versatile/netboot/vmlinuz-2.6.32-5-versatile
3. ARM 安裝 img 檔,自行建立,指令如下:
qemu-img create arm.img 1G
目錄配置:
~/qemu-arm/arm.img
/initrd.img-2.6.32-5-versatile
/vmlinuz-2.6.32-5-versatile
/install/initrd.gz
/install/vmlinuz-2.6.32-5-versatile
/install/debian-6.0.6-armel-CD-1.iso
執行安裝
請在 ~/qemu-arm 目錄執行底下指令:
qemu-system-arm -M versatilepb \
-kernel ./install/vmlinuz-2.6.32-5-versatile \
-initrd ./install/initrd.gz \
-cdrom ./install/debian-6.0.6-armel-CD-1.iso \
-hda arm.img \
-m 1024
請注意安裝流程中硬碟分割區只要一個即可。安裝完畢重新開機後會進入安裝畫面,請執原始指令終端機按 Ctrl+C 將 qemu中斷。接著我們可以萃取「正常開機核心」。
萃取「正常開機核心」。
安裝完後以 losetup 將 arm.img 掛載,然而複製 /boot 底下的
initrd.img-2.6.32-5-versatile
vmlinuz-2.6.32-5-versatile
出來,然後執行底下指令即可開機:
qemu-system-arm -M versatilepb -m 512 -boot c \
-kernel vmlinuz-2.6.32-5-versatile \
-initrd initrd.img-2.6.32-5-versatile \
-hda arm.img \
-append "root=/dev/sda1"
準備
1. ARM iso 檔 - http://debian.nctu.edu.tw/debian-cd/6.0.6/armel/iso-cd/debian-6.0.6-armel-CD-1.iso
2. ARM installer 檔案
a. http://debian.nctu.edu.tw/debian/dists/squeeze/main/installer-armel/current/images/versatile/netboot/initrd.gz
b. http://debian.nctu.edu.tw/debian/dists/squeeze/main/installer-armel/current/images/versatile/netboot/vmlinuz-2.6.32-5-versatile
3. ARM 安裝 img 檔,自行建立,指令如下:
qemu-img create arm.img 1G
目錄配置:
~/qemu-arm/arm.img
/initrd.img-2.6.32-5-versatile
/vmlinuz-2.6.32-5-versatile
/install/initrd.gz
/install/vmlinuz-2.6.32-5-versatile
/install/debian-6.0.6-armel-CD-1.iso
執行安裝
請在 ~/qemu-arm 目錄執行底下指令:
qemu-system-arm -M versatilepb \
-kernel ./install/vmlinuz-2.6.32-5-versatile \
-initrd ./install/initrd.gz \
-cdrom ./install/debian-6.0.6-armel-CD-1.iso \
-hda arm.img \
-m 1024
請注意安裝流程中硬碟分割區只要一個即可。安裝完畢重新開機後會進入安裝畫面,請執原始指令終端機按 Ctrl+C 將 qemu中斷。接著我們可以萃取「正常開機核心」。
萃取「正常開機核心」。
安裝完後以 losetup 將 arm.img 掛載,然而複製 /boot 底下的
initrd.img-2.6.32-5-versatile
vmlinuz-2.6.32-5-versatile
出來,然後執行底下指令即可開機:
qemu-system-arm -M versatilepb -m 512 -boot c \
-kernel vmlinuz-2.6.32-5-versatile \
-initrd initrd.img-2.6.32-5-versatile \
-hda arm.img \
-append "root=/dev/sda1"
2012年11月12日 星期一
如何更換 IP ?
假設我們執行 Linux 時換主機啟動,由於網路鎖定網卡的關係無法連上網路,因此我們必須更換網卡 IP,其步驟如下:
1. 修改 /etc/network/interfaces 這個檔案,將舊主機的 IP 換成新主機的 IP
2. 將 /etc/udev/rules.d/70-persistent-net.rules 檔案刪除
3. 重開機
此時即可更換新 IP。
Q: 為何要刪 /etc/udev/rules.d/70-persistent-net.rules 檔案 ?
A: 因為此檔中有 eth0 的卡號設定,但是我們換主機後 eth0 的卡號也跟著換掉,因此新主機的網卡會變成 eth1,這樣會跟 /etc/network/interfaces 的設定不符。為了避免此問題,我們要將此檔刪除,讓 udev 在重新開機時自動再偵測一次。
觀看網路設定
要觀看網路設定請以 root 權限執行底下指令:
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:24:1d:12:5c:c7
inet addr:120.117.72.71 Bcast:120.117.72.127 Mask:255.255.255.128
inet6 addr: fe80::224:1dff:fe12:5cc7/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:54421646 errors:0 dropped:0 overruns:0 frame:0
TX packets:39035331 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2028090082 (1.8 GiB) TX bytes:403858794 (385.1 MiB)
Interrupt:43 Base address:0xa000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3524016 errors:0 dropped:0 overruns:0 frame:0
TX packets:3524016 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:238745206 (227.6 MiB) TX bytes:238745206 (227.6 MiB)
我們可以看到 eth0 及 lo 這兩個網路卡介面,其中 eth0 是我們真正連接至外部
網路之網路介面,而 lo 則為 loopback 裝置。從 eth0 的資料我們可以看到以下
資訊:
1. HWaddr -> 網路卡卡號為 00:24:1d:12:5c:c7
2. inet addr -> 我們所設定的網址為 120.117.72.71
3. Bcast -> 區網廣播網址為 120.117.72.127
4. Mask -> 子網路遮罩為 255.255.255.128
5. RX -> Receive (收封包)
TX -> Transmit (傳封包)
至於 lo 之 inet addr 為 127.0.0.1,這個 IP 也就是表示自己的 IP。
2012年11月4日 星期日
期末上機考題
1. 架構嵌入式 Debian Linux 開發環境,包括可在 X86 平台上進行 Cross Compile 之 ARM tool
chain。
2. 自行下載並安裝最新版本之 Qemu Linaro 版,以便使用 PC 平台模擬嵌入式 ARM 開發環境。
接下來是使用 Qemu 來進行嵌入式系統建構
3. 使用 Qemu 來安裝 Debian Linux,並使其能正常開機,我們將以此虛擬機器之 / 作為接下來之 rootfs。
4. 自行下載 Linux 3.2.XX 系列 Long Term Support 核心,並以 Beagle Board 為目標 (Target) 來編譯此核心。
5. 自行下載最新版之 U-boot,並以 Beagle Board 為目標 (Target) 來編譯 U-boot。
6. 將第 3 至第 5 點之 bootloader、Linux Kernal 以及自定之 rootfs 整合至虛擬 SDCARD 中,並以 Qemu 開機。
接下來是使用 Devkit 800 來進行實際嵌入式系統開發
7. 承 4. 請以 Devkit 8000 為目標來編譯 Linux 核心。
8. 承 5. 請以 Devkit 8000 為目標來編譯 U-boot。
9. 請將 bootloader、Linux 核心以及 rootfs 放置至實體 SDCARD 中,其規劃如下:
第1分割區:80 MB、FAT 16 or FAT 32 檔案系統。
第2分割區:剩下空間(1GB 以上)、ext 3 檔案系統。
10. 請將實體 SDCARD 插入 Devkit 8000 之 SD 插槽中,並能以 SDCARD 開機。
2. 自行下載並安裝最新版本之 Qemu Linaro 版,以便使用 PC 平台模擬嵌入式 ARM 開發環境。
接下來是使用 Qemu 來進行嵌入式系統建構
3. 使用 Qemu 來安裝 Debian Linux,並使其能正常開機,我們將以此虛擬機器之 / 作為接下來之 rootfs。
4. 自行下載 Linux 3.2.XX 系列 Long Term Support 核心,並以 Beagle Board 為目標 (Target) 來編譯此核心。
5. 自行下載最新版之 U-boot,並以 Beagle Board 為目標 (Target) 來編譯 U-boot。
6. 將第 3 至第 5 點之 bootloader、Linux Kernal 以及自定之 rootfs 整合至虛擬 SDCARD 中,並以 Qemu 開機。
接下來是使用 Devkit 800 來進行實際嵌入式系統開發
7. 承 4. 請以 Devkit 8000 為目標來編譯 Linux 核心。
8. 承 5. 請以 Devkit 8000 為目標來編譯 U-boot。
9. 請將 bootloader、Linux 核心以及 rootfs 放置至實體 SDCARD 中,其規劃如下:
第1分割區:80 MB、FAT 16 or FAT 32 檔案系統。
第2分割區:剩下空間(1GB 以上)、ext 3 檔案系統。
10. 請將實體 SDCARD 插入 Devkit 8000 之 SD 插槽中,並能以 SDCARD 開機。
2012年11月2日 星期五
Rootfs 的改造
Rootfs 的改造
1. 瘦身
Q. 那些檔案可以宰 ?
在 $ROOTFS 目錄下執行
du -sh *
以觀看每個目錄所佔空間。
$ROOTFS/usr/share/man -> 清除 man manual
$ROOTFS/usr/share/doc -> 沒人看的文件
$ROOTFS/usr/share/locale -> 語系設定檔 (翻譯檔),僅留 en_US (+ zh_TW) 即可。
請移除舊版核心模組,並複製新版核心模組至此目錄
$ROOTFS/lib/modules -> 舊核心之驅動程式模組目錄
$ROOTFS/lib/modules/2.6.32-5-versatile -> 移除
$ROOTFS/lib/modules/3.2.30 -> 新增
$ROOTFS/boot -> 舊版核心檔案,請全部清掉
$ROOTFS/var ->
$ROOTFS/var/log -> 日誌檔目錄,可完全清除
$ROOTFS/var/cache/apt 目錄有套件的快取資料,可清除
2. 複製新檔案回去
a. 複製新 Linux 核心模組
(不需要放 Linux 核心,因為其核心檔案放置至 sdcard 之第 1 個分割區)
3. 加入我們想要的設定
a. $ROOTFS/etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p2 / auto errors=remount-ro 0 1
/dev/mmcblk0p1 /boot auto defaults 0 0
b. $ROOTFS/etc/inittab
最後一行加上:
T2:23:respawn:/sbin/getty -L ttyO2 115200 vt102
3. 複製至真正的 sdcard 中
請使用 fdisk 分割 sdcard (2 GB 以上),其中第 1 個分割區為 80 MB,剩下為第 2 個分割區。並依以下方式掛載:
/mnt/sdcard1 -> 第 1 個分割區,FAT 16/32 格式,有打開開機旗標。
/mnt/sdcard2 -> 第 2 個分割區,ext3 格式。
a. 複製核心、bootloader 及 uEnv.txt 至 /mnt/sdcard1,裡面內容如下:
-rwxr-xr-x 1 root root 45128 2012-10-30 22:19 MLO
-rwxr-xr-x 1 root root 1215711 2012-10-30 22:19 u-boot
-rwxr-xr-x 1 root root 294672 2012-10-30 22:19 u-boot.bin
-rwxr-xr-x 1 root root 294736 2012-10-30 22:19 u-boot.img
-rwxr-xr-x 1 root root 1 2012-10-30 23:29 uEnv.txt
-rwxr-xr-x 1 root root 2475616 2012-10-30 22:15 uImage
b. 複製 rootfs 至 /mnt/sdcard2,請使用 rsync 來複製
rsync -av $ROOTFS/* /mnt/sdcard2
4. 作完收工,可以至 devkit 8000 開機
1. 瘦身
Q. 那些檔案可以宰 ?
在 $ROOTFS 目錄下執行
du -sh *
以觀看每個目錄所佔空間。
$ROOTFS/usr/share/man -> 清除 man manual
$ROOTFS/usr/share/doc -> 沒人看的文件
$ROOTFS/usr/share/locale -> 語系設定檔 (翻譯檔),僅留 en_US (+ zh_TW) 即可。
請移除舊版核心模組,並複製新版核心模組至此目錄
$ROOTFS/lib/modules -> 舊核心之驅動程式模組目錄
$ROOTFS/lib/modules/2.6.32-5-versatile -> 移除
$ROOTFS/lib/modules/3.2.30 -> 新增
$ROOTFS/boot -> 舊版核心檔案,請全部清掉
$ROOTFS/var ->
$ROOTFS/var/log -> 日誌檔目錄,可完全清除
$ROOTFS/var/cache/apt 目錄有套件的快取資料,可清除
2. 複製新檔案回去
a. 複製新 Linux 核心模組
(不需要放 Linux 核心,因為其核心檔案放置至 sdcard 之第 1 個分割區)
3. 加入我們想要的設定
a. $ROOTFS/etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p2 / auto errors=remount-ro 0 1
/dev/mmcblk0p1 /boot auto defaults 0 0
b. $ROOTFS/etc/inittab
最後一行加上:
T2:23:respawn:/sbin/getty -L ttyO2 115200 vt102
3. 複製至真正的 sdcard 中
請使用 fdisk 分割 sdcard (2 GB 以上),其中第 1 個分割區為 80 MB,剩下為第 2 個分割區。並依以下方式掛載:
/mnt/sdcard1 -> 第 1 個分割區,FAT 16/32 格式,有打開開機旗標。
/mnt/sdcard2 -> 第 2 個分割區,ext3 格式。
a. 複製核心、bootloader 及 uEnv.txt 至 /mnt/sdcard1,裡面內容如下:
-rwxr-xr-x 1 root root 45128 2012-10-30 22:19 MLO
-rwxr-xr-x 1 root root 1215711 2012-10-30 22:19 u-boot
-rwxr-xr-x 1 root root 294672 2012-10-30 22:19 u-boot.bin
-rwxr-xr-x 1 root root 294736 2012-10-30 22:19 u-boot.img
-rwxr-xr-x 1 root root 1 2012-10-30 23:29 uEnv.txt
-rwxr-xr-x 1 root root 2475616 2012-10-30 22:15 uImage
b. 複製 rootfs 至 /mnt/sdcard2,請使用 rsync 來複製
rsync -av $ROOTFS/* /mnt/sdcard2
4. 作完收工,可以至 devkit 8000 開機
minicom 使用說明
先前設定
minicom 是一個序列數據連線程式,可以拿來跟數據機連線,也可以拿來跟我們要使用的 ARM 板連線,要使用 minicom 請安裝 minicom 套件。
apt-get install minicom
當我們將 ARM 板連接線接至 USB 埠時,會出現一個新的裝置叫 /dev/ttyUSBN 的裝置,N 是數字,通常為 0,若連接第 2 次的話會變成 1。我們要將 /dev/ttyUSB0 連結至 /dev/modem:
ln -s /dev/ttyUSB0 /dev/modem
我們可以執行底下指令來確認:
ls -l /dev/ttyUSB0 /dev/modem
lrwxrwxrwx 1 root root 12 2012-11-01 10:44 /dev/modem -> /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 2012-11-01 10:39 /dev/ttyUSB0
請注意 /dev/ttyUSB0 的 owner 為 root,群組為 dialout,因此我們所使用的帳號必須要是 dialout 群組才可以對 ttyUSB0 進行操作。
Q1: 請問我如何查看我是否為 dialout 群組中的成員
A: id
uid=1000(herman) gid=1000(herman) groups=1000(herman),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(bluetooth),111(netdev)
Q2: 若我不是 dialout 群組中之成員,該如何加入 ?
A: 最簡單方式,直接編輯 /etc/group 檔案,將帳號輸入至 dialout 群組之後即可,修改完還必須重新登錄才行。加完後 /etc/group 檔案有關 dialout 群組之資訊如下所示:
dialout:x:20:herman
啟動 minicom
請以「一般使用者」權限執行:
minicom
此時會出現 minicom 畫面,我們要進行一下設定,請按
Ctrl+A o 叫出設定畫面,如以下所示:
===============================================================================
歡迎使用 minicom 2.4
選項: I18n
編譯於 Sep 5 2010, 09:23:03.
Port /dev/modem
按 CTRL-A Z 說明特殊鍵
機 |
+----[設定]----+
| 檔名和路徑 |
| 檔案傳輸協定 |
| 序列埠設定 |
| 數據機和撥接 |
| 螢幕和鍵盤 |
| 儲存設定為 dfl |
| 另存設定為.. |
| 離開本畫面 |
+------------+
CTRL-A Z 說 明 | 115200 8N1 NOR Minicom 2.4 | VT102 離線
===============================================================================
請選擇「序列埠設定」將底下設定改為我們所要的參數:
A - 序 列 設 備 : /dev/modem
F - 硬 體 Flow 控 制 : 否 | | G - 軟 體 Flow 控 制 : 否
修改完設定後,請按 \Enter 回到前一畫面,接著再選
「儲存設定為 dfl」
最後選「離開本畫面」即可準備連線。
minicom 是一個序列數據連線程式,可以拿來跟數據機連線,也可以拿來跟我們要使用的 ARM 板連線,要使用 minicom 請安裝 minicom 套件。
apt-get install minicom
當我們將 ARM 板連接線接至 USB 埠時,會出現一個新的裝置叫 /dev/ttyUSBN 的裝置,N 是數字,通常為 0,若連接第 2 次的話會變成 1。我們要將 /dev/ttyUSB0 連結至 /dev/modem:
ln -s /dev/ttyUSB0 /dev/modem
我們可以執行底下指令來確認:
ls -l /dev/ttyUSB0 /dev/modem
lrwxrwxrwx 1 root root 12 2012-11-01 10:44 /dev/modem -> /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 0 2012-11-01 10:39 /dev/ttyUSB0
請注意 /dev/ttyUSB0 的 owner 為 root,群組為 dialout,因此我們所使用的帳號必須要是 dialout 群組才可以對 ttyUSB0 進行操作。
Q1: 請問我如何查看我是否為 dialout 群組中的成員
A: id
uid=1000(herman) gid=1000(herman) groups=1000(herman),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(bluetooth),111(netdev)
Q2: 若我不是 dialout 群組中之成員,該如何加入 ?
A: 最簡單方式,直接編輯 /etc/group 檔案,將帳號輸入至 dialout 群組之後即可,修改完還必須重新登錄才行。加完後 /etc/group 檔案有關 dialout 群組之資訊如下所示:
dialout:x:20:herman
啟動 minicom
請以「一般使用者」權限執行:
minicom
此時會出現 minicom 畫面,我們要進行一下設定,請按
Ctrl+A o 叫出設定畫面,如以下所示:
===============================================================================
歡迎使用 minicom 2.4
選項: I18n
編譯於 Sep 5 2010, 09:23:03.
Port /dev/modem
按 CTRL-A Z 說明特殊鍵
機 |
+----[設定]----+
| 檔名和路徑 |
| 檔案傳輸協定 |
| 序列埠設定 |
| 數據機和撥接 |
| 螢幕和鍵盤 |
| 儲存設定為 dfl |
| 另存設定為.. |
| 離開本畫面 |
+------------+
CTRL-A Z 說 明 | 115200 8N1 NOR Minicom 2.4 | VT102 離線
===============================================================================
請選擇「序列埠設定」將底下設定改為我們所要的參數:
A - 序 列 設 備 : /dev/modem
F - 硬 體 Flow 控 制 : 否 | | G - 軟 體 Flow 控 制 : 否
修改完設定後,請按 \Enter 回到前一畫面,接著再選
「儲存設定為 dfl」
最後選「離開本畫面」即可準備連線。
2012年11月1日 星期四
目錄結構說明
視窗作業系統底下的目錄結構:
C:\
D:\
E:\
..
依此類推,其中 \ (backslash 又稱之為反斜線) 是指 C/D/E 最上層目錄。
但是所有的 Unix 最上層目錄為 / (slash 又稱之為斜線) 是指我們的根目錄。
目錄/檔案指令操作說明:
pwd -> 目前目錄
cd <目錄名稱> -> 切換至某個目錄,例如:
cd \Enter -> 切換至家目錄
~ -> 此目錄即為家目錄
cd / -> 切換至 / 目錄
ls -> 觀看目前目錄內容
ls -l -> 觀看目前目錄內容以及屬性,其輸出如下所示:
drwxr-xr-x 2 root root 4096 2012-09-18 10:32 bin
drwxr-xr-x 3 root root 4096 2012-10-08 09:43 boot
drwxr-xr-x 16 root root 3420 2012-10-28 06:47 dev
drwxr-xr-x 149 root root 12288 2012-10-29 04:42 etc
drwxr-xr-x 2 root root 4096 2012-03-28 16:33 hd2
drwxr-xr-x 65 root root 4096 2012-09-11 15:25 home
lrwxrwxrwx 1 root root 35 2011-04-25 10:18 initrd.img -> boot/initrd.img-2.6.32-5-686-bigmem
lrwxrwxrwx 1 root root 28 2011-04-21 19:25 initrd.img.old -> boot/initrd.img-2.6.32-5-686
drwxr-xr-x 14 root root 16384 2012-10-08 09:42 lib
drwx------ 2 root root 16384 2011-04-21 19:21 lost+found
drwxr-xr-x 4 root root 4096 2011-04-21 19:21 media
drwxr-xr-x 2 root root 4096 2010-12-15 05:54 mnt
drwxr-xr-x 11 root root 4096 2011-12-01 14:47 opt
dr-xr-xr-x 138 root root 0 2012-09-10 08:40 proc
drwx------ 33 root root 4096 2012-10-25 17:44 root
drwxr-xr-x 2 root root 4096 2012-10-08 09:42 sbin
drwxr-xr-x 2 root root 4096 2010-07-21 14:55 selinux
drwxr-xr-x 2 root root 4096 2011-04-21 19:22 srv
drwxr-xr-x 12 root root 0 2012-09-10 08:40 sys
drwxrwxrwt 14 root root 4096 2012-10-29 09:21 tmp
drwxr-xr-x 13 root root 4096 2012-04-25 15:56 usr
drwxr-xr-x 14 root root 4096 2011-06-23 19:40 var
lrwxrwxrwx 1 root root 32 2011-04-25 10:18 vmlinuz -> boot/vmlinuz-2.6.32-5-686-bigmem
lrwxrwxrwx 1 root root 25 2011-04-21 19:25 vmlinuz.old -> boot/vmlinuz-2.6.32-5-686
以 /bin 目錄來說,其輸出如下:
drwxr-xr-x 2 root root 4096 2012-09-18 10:32 bin
^^^^^^^^^^
上述標示處即為其屬性,以此例來說,第一個字元為 d 表示為目錄,之後
rwxr-xr-x 表示三種不同的存取權限,
rwxr-xr-x 第一個是 owner (檔案所有人),有可讀、可寫、可執行之權限
^^^
rwxr-xr-x 第二個是 groups (同一群組所有人),有可讀、不可寫、可執行之權限
^^^
rwxr-xr-x 第三個是 others (其它人),有可讀、不可寫、可執行之權限
^^^
另一個例子為 initrd.img 連結檔,其中出如下:
lrwxrwxrwx 1 root root 28 2011-04-21 19:25 initrd.img.old -> boot/initrd.img-2.6.32-5-686
其中第一個字元為 l 表示連結檔 (link file),其意義等同於 Windows 底下的捷徑,
這個檔案連結至 boot/initrd.img-2.6.32-5-686 這個檔案,
其餘屬性請自行參考上述說明。
C:\Programming Files\
C:\Windows
盡信書,不如無書
若資料可以在 cache 中找到,稱之為 hit,若找不到則稱為 miss。
訂閱:
文章 (Atom)