2012年7月6日 星期五

quota (配額) 釋疑 (未完成)

       Linuxext234的檔案系統,可以作quota(配額)的設定,相關的指令工具有:

mount:
quotacheck:
quotaon/off:
repquota:
edquota:
quota:

     指令「quotaon」有一個選項「-a」,該選項的man_page說明如下:
All automatically mounted (no noauto option) non-NFS filesystems in /etc/fstab with quotas will have their quotas turned on. This is normally used at boot time to enable quotas.

        上面的內容易讓人誤解為「quotaon -a」,會去參考檔案「/etc/fstab」的內容來啟動檔案系統的quota功能。

其實不是這個意思。
基本上「quotaon -a」和「quotacheck -a」,這個選項「-a」都是去參考檔案「/etc/mtab」的內容來作quota的運作。

證明:
我們設計一個Lab環境:
1.在檔案「etc/fstab」裡頭加入一筆資料
/tmp/quota     /mnt/fs1    ext2   loop,auto,usrquota   0  0


2.重新開機,之後該檔案系統會在系統啟動時被自動掛載到系統,並啟動quota的功能。

3.緊接著,我們手動將這個檔案系統「/tmp/quota」卸載,執行命令行「mount -n -t ext2 -o loop,auto,usrquota /mnt/fs1」,重新掛載該檔案系統;由於指令「mount」的選項「-n」的作用在於〝會將檔案系統掛載,但卻不會將掛載的訊息更新到檔案「/etc/mtab」中〞。此時再執行「quotaon -a」時,會發現在該檔案系統的quota是沒用啟動的。

結論:quotaon -a基本上是參考檔案「/etc/mtab」。



2012年5月29日 星期二

2012年5月19日 星期六

解決Ubuntu上使用vi編輯時,方向鍵及倒退鍵(Backspace)操作失常的問題

Ubuntu上使用vi編輯器編輯時,有時會發現方向鍵和倒退鍵(Backspace)會失常。

如上圖

vi的輸入模式(inser mode)時:
1.輸入方向鍵會出現ABCD
2.倒退刪除鍵(Backspace)緅作用
此時,我們可以在家目錄底下,新增檔案「.vimrc」,在檔案中加入下列2行內容:
set nocompatible
set backspace=2
記得存檔後離開

接著再使用vi編輯器時便可正常使用方向鍵和倒退鍵(Backspace)了。

2012年3月16日 星期五

喔賣尬!原來這就是vi 的 h j k l (左下上右鍵) 的由來^______^"


I was reading about vim the other day and found out why it used hjkl keys as arrow keys. When Bill Joycreated the vi text editor he used the ADM-3A terminal, which had the arrows on hjkl keys. Naturally he reused the same keys and the rest is history!
Here is how the hjkl keys looked:

ADM-3A keyboard's hjkl keys with arrows.
And here is the whole terminal that vi was created on:

Lear Siegler's ADM-3A computer terminal.
Since vim is derived from vi, it uses the same hjkl keys.
And while we're at it, notice where the ESC key is positioned:

Lear Siegler's ADM-3A computer terminal's full keyboard.
That's why the ESC is used to change between vi modes! Because it's so close and easy to reach.
Also ever wondered why home directory is ~ in UNIX? Look at the HOME key in upper right corner!

HJKL T-Shirt!

I just got a deal with Teespring for a hjkl t-shirt! Teespring is like kickstarter for t-shirts. If at least 30 people commit to buy the shirt the deal goes through and everyone gets the shirt. Otherwise nothing happens.
Get your limited edition hjkl t-shirt now! (Ships worldwide in 4-8 days.)

2011年12月26日 星期一

硬碟分割區的研究(二) --- 從指令fdisk觀察

假設我們有一顆磁碟「/dev/sdb」,這顆磁碟有255個磁頭(head),2610個磁柱(cylinder),以及平均一個磁軌有63個磁區 (63 sectors/track)。現在我們透過指令「fdisk」將這個磁碟分割成3個分割區:sdb1、sdb2、sdb3。結果列舉如下圖:

圖(一):以磁柱編號來顯示磁碟資訊
從上圖可知這3個分割區的範圍:
sdb1:從磁柱1~磁柱1       => 表示sdb1座落在磁柱1裡面。
sdb2:從磁柱2~磁柱2       => 表示sdb2座落在磁柱2裡面。
sdb3:從磁柱3~磁柱2610  => 表示sdb3座落在磁柱3~2610裡面。


圖(二):以磁區編號來顯示磁碟資訊
Q1:這3個分割區各自擁有多少個磁區(sector)?
PS:fdisk -l顯示的資訊,磁區編號從0開始,磁柱編號是從1開始。
從上圖的資訊可知:
1.每1個磁柱(cylinder)含有255*63=16065個磁區(sector)。
2.第1個磁柱含有16065個磁區,編號從Sector 0~16064。
3.第1個分割區「sdb1」擁有磁碟第1個磁柱(編號1)的部份磁區,Sector 63 ~ 16064。所以換言之第1個分割區並沒有擁有第1個磁柱的所有磁區。
4.第2個分割區「sdb2」擁有磁碟第2個磁柱全部的磁區,Sector 16065 ~ 32129。所以擁有的磁區總數=32129-16065+1=16065=1 個磁柱所含有的全部的磁區數。
5.第3個分割區「sdb3」擁有磁碟第2個磁柱~第2610磁柱全部的磁區,(2610-3+1)*16065=41897520=41929649-32130+1。


Q2:磁碟的第1個磁區(編號Sector 0)到第63個磁區(編號Sector 62),共63個Sectors不屬於第1個分割區(sdb1),那這些沒用在分割區的磁區是用來作什麼的?

PS:CHS表示法,磁柱從0起算,磁頭從0起算,磁區從1起算;所以MBR是(0,0,1)。
這63個磁區按位置是座落在磁碟最前頭的63個磁區,其中最開頭的磁區也就是磁碟的第1個磁區,是我們俗稱的MBR,也就是「主要開機磁區」。接在MBR後面的62個磁區是保留磁區,與MBR一起組合成一個磁軌(track),按CHS定址的表示法是(0,0,1)、(0,0,2)一直到(0,0,63)。也就是磁碟的第一個磁盤(對應第1個磁頭)上的第1個磁軌(對應第1個磁柱)上的所有磁區。
所以總結來說,每個磁碟的前63個磁區有特殊使用,不在分割區裡頭。也因此除了有座落在第1個磁柱的分割區不會用滿第1磁柱的所有磁區;其它磁柱的磁區都會全部給分割區使用。


Q3:圖(二)中,blocks欄位的紅色框框數值"8032+",這"+"是什麼意思??
在linux作業系統中,無論是哪一個檔案系統,預設都是以1 block=1024 Bytes=1 KB來統計磁碟容量,既然1個block等於1024 Bytes,也就相當於2個磁區(因為1個磁區固定為512 Bytes),所以我們將sdb2的總磁區數16065除以2會得到8032餘1,這代表這個分割區內含的總磁區數如果以1個block等於1024 Bytes來換算的話,我們會得到該磁區有8032個完整的blocks,和1個不完整的block,而這一個不完整的block便用『+號』表示。而有的人是說該欄位正確的數字應是「8032.5」個block,不過指令fdisk只能顯示整數,所以『+號』表示小數點之後還有值,也就是比8032還要多一點,但又不到8033。這樣的說法也是對的,因為實際意義是一樣的。




從指令「fdisk」了解磁碟的分割區之後,下一篇我們用另一個操作磁碟分割表(Partition Table)的指令「sfdisk」來再看一次該磁碟的分割區資訊,作一個對應和驗證,順便學習了解「sfdisk」,而且這一個指令可以備份和還原「Partition Table」,實用性分常高。