在 Linux 系統上面偵測、維護、變更硬體的方法
本文資料主要針對 Fedora Core 4 的系統進行說明, Fedora Core 1 主要是由 Red Hat Linux 9 改版而來, 這個 Red Hat Linux 9 並不是當前大家聽到的 RHEL 喔!那是在 RHEL 出現之前的產品,基本上是在 2003 年以前的作品了!Fedora Core 4 則是在 2005 年 6 月份釋出,使用的核心是 2.6.11 版,當時是很紅的一個作品!只是生命週期太短,所以用這個 Fedora 系列來介紹 Server, 當時的決定確實有點莫名其妙了...
建議您前往本站查詢最新版本的 Linux distribution 文章來閱讀,比較不會浪費時間。那為何還需要編輯 Fedora Core 4 的資料呢? 鳥哥只想要做個自己曾經撰寫過的文件內容保存而已囉! ^_^!最新文章請前往鳥站首頁查閱囉!
談完了 Linux 的系統操作,再來得要瞭解一下若您的主機硬體更換,或者是想要進行主機的溫度偵測時, 應該要怎麼作?在這個章節當中,我們會談到如何以 Linux kernel 裡面的 lm_sensor 功能, 以及利用 LVM 來製作一個大型的硬碟,讓您的 filesystem 容量更具有彈性喔! 當然啦,在 Linux 系統上面接上您的印表機,也是一個很好玩的工作喔!那就來讀一讀吧!
[root@linux ~]# lspci [-vvn] 參數: -v :觀察更多的 PCI 裝置的資訊; -vv :比 -v 還要更詳細的細部資訊; -n :直接觀察 PCI 的 ID 而不是廠商名稱 範例: 範例一:查閱您系統內的 PCI 裝置: [root@linux ~]# lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4) 00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP] .....(中間省略)..... 00:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 MX 440] (rev a3) # 不必加任何的參數,就能夠顯示出目前主機上面的各個 PCI 介面的裝置呢! # 從上面的資料可以看出我的顯示卡是 Nvidia 的,主機晶片則是 VIA 的, # 網路卡則是 Realtek 的 8139 (亦即是螃蟹卡啊!)。基本上,我們可以由 lspci 立刻得到主機上面的各項設備,如果還想要知道他所佔用的 IRQ 與 I/O port 時,可以加上『 lspci -vv 』來查閱啊!簡單得不得了吧! 另外,您會發現上表當中的每一行最前面都有一組怪怪的數字,那是什麼? 其實那就是我們的硬體偵測的數據啦!您可以對照著底下這個檔案來查閱:
[root@linux ~]# iostat [-c|-d] [-k] [-t] [間隔秒數] [偵測次數] 參數: -c :僅顯示 CPU 的狀態; -d :僅顯示儲存設備的狀態,不可與 -c 一起用; -k :預設顯示的是 block ,這裡可以改成 K bytes 的大小來顯示; -t :顯示日期出來; 範例: 範例一:顯示一下目前整個系統的 CPU 與儲存設備的狀態 [root@linux ~]# iostat Linux 2.6.12-1.1456_FC4 (localhost.localdomain) 10/27/05 avg-cpu: %user %nice %sys %iowait %idle 0.34 0.01 0.34 0.20 99.11 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn hda 0.55 2.64 3.28 6631507 8230880 hdb 0.21 4.52 9.10 11342022 22855752 # 瞧!上面數據總共分為上下兩部分,上半部顯示的是 CPU 的當下資訊; # 下面數據則是顯示儲存裝置 /dev/hda, /dev/hdb 的相關數據,他的數據意義: # tps :平均每秒鐘的傳送次數!與資料傳輸『次數』有關,非容量! # kB_read/s :開機到現在平均的讀取單位; # kB_wrtn/s :開機到現在平均的寫入單位; # kB_read :開機到現在,總共讀出來的檔案單位; # kB_wrtn :開機到現在,總共寫入的檔案單位; 範例二:每兩秒鐘偵測一次,並且共偵測三次儲存裝置 [root@linux ~]# iostat -d 2 3 Linux 2.6.12-1.1456_FC4 (localhost.localdomain) 10/27/05 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn hda 0.55 2.64 3.28 6631507 8231496 hdb 0.21 4.51 9.10 11342022 22855752 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn hda 0.00 0.00 0.00 0 0 hdb 0.00 0.00 0.00 0 0 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn hda 0.00 0.00 0.00 0 0 hdb 0.00 0.00 0.00 0 0 # 仔細看一下,如果是有偵測次數的情況,那麼第二次以後所顯示的資料, # 則代表兩次偵測之間的系統傳輸值!舉例來說,上面的資訊當中, # 第二次顯示的資料,則是兩秒鐘內(本案例)系統的總傳輸量與平均值。透過 lspci 及 iostat 可以約略的瞭解到目前系統的狀態啊! 還有目前的主機硬體資料呢!知道這些資訊後,我們就可以來玩一些比較不一樣的東西囉! ^_^
[root@linux ~]# lsmod Module Size Used by uhci_hcd 43345 0 ehci_hcd 48333 0 # 我僅列出這兩個模組而已~上面的是 UHCI 模組,底下則是 USB 增強模組。 [root@linux ~]# modinfo ehci_hcd ....省略..... description: 10 Dec 2004 USB 2.0 'Enhanced' Host Controller (EHCI) Driver author: David Brownell license: GPL ....省略..... # 很有趣吧!說的是 Enhanced Host Controller 呢!
[root@linux ~]# mkdir -p /dev/usb [root@linux ~]# mknod /dev/usb/lp0 c 180 0 [root@linux ~]# chown root:lp /dev/usb/lp0 [root@linux ~]# chmod 660 /dev/usb/lp0 [root@linux ~]# ls -l /dev/usb/lp0 crw-rw---- 1 root lp 180, 0 Nov 7 16:03 /dev/usb/lp0 [root@linux ~]# echo "testing" > /dev/usb/lp0鳥哥這裡是以 FC4 為範例,要注意, /dev/usb/lp0 的權限必須要與 /dev/lp0 相同, 所以,我這裡還得要使用 chown 與 chmod 來變換該裝置檔案的權限才行。 建立好之後,就可以使用 cups 之類的軟體來管理這一部印表機囉! ^_^。 事實上,除了比較早期的 Linux distributions 之外,較新的 distributions 已經幫我們建立好 /dev/usb/lp0 等檔案裝置了呢!真是方便!
[root@linux ~]# rpm -qa | grep lm_sensors
lm_sensors-2.9.1-3.FC4.2
如果您的 Linux distributions 是比較早期的版本,那麼就只好請您自行前往
http://www2.lm-sensors.nu/~lm78/ 官方網站直接下載 tarball
並且安裝他囉~如果您使用的是 FC3 或 FC4 ,那麼我們就直接來處理吧!1. 先偵測主機板的晶片組啊! [root@linux ~]# sensors-detect # 開頭會有一些簡單的說明,看看就好! It is generally safe and recommended to accept the default answers to all questions, unless you know what you're doing. We can start with probing for (PCI) I2C or SMBus adapters. You do not need any special privileges for this. Do you want to probe now? (YES/no): y Probing for PCI bus adapters... Use driver `rivatv' for device 01:00.0: GeForce2 MX Use driver `i2c-viapro' for device 00:07.4: VIA Technologies VT82C686 Apollo ACPI Probe succesfully concluded. # 接下來的行為當中,反正你就一直按 Enter 就可以了!讓他自動去偵測! I will now generate the commands needed to load the I2C modules. Sometimes, a chip is available both through the ISA bus and an I2C bus. ISA bus access is faster, but you need to load an additional driver module for it. If you have the choice, do you want to use the ISA bus or the I2C/SMBus (ISA/smbus)? To make the sensors modules behave correctly, add these lines to /etc/modules.conf: #----cut here---- # I2C module options alias char-major-89 i2c-dev #----cut here---- To load everything that is needed, add this to some /etc/rc* file: #----cut here---- # I2C adapter drivers modprobe i2c-viapro modprobe i2c-isa # I2C chip drivers modprobe eeprom modprobe via686a # sleep 2 # optional /usr/bin/sensors -s # recommended #----cut here---- # 上面的關鍵是重點!告訴你要如何載入模組的一個簡單的範例啊! Do you want to generate /etc/sysconfig/lm_sensors? (YES/no): Copy prog/init/lm_sensors.init to /etc/rc.d/init.d/lm_sensors for initialization at boot time. # 如果想要確認一下 sensors-detect 偵測到的結果是否正確, # 可以使用 lspci 查閱一下喔!鳥哥的例子當中,是這樣的: [root@linux ~]# lspci 00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4) 00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP] 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 22) # 確實找到的是 VIA 的晶片!沒有問題! 2. 開始載入模組與修改一些設定資料檔案啊! [root@linux ~]# vi /etc/modprobe.conf alias char-major-89 i2c-dev # 將剛剛偵測到的模組給他寫入到這個檔案當中!這是 kernel 2.6 版的! # 如果是早期的 kernel 2.4 核心,那就寫到 /etc/modules.conf 當中! [root@linux ~]# vi /etc/rc.d/rc.local # Adding the sensor for VIA 686A Chip /sbin/modprobe i2c-isa /sbin/modprobe via686a sleep 2 /usr/bin/sensors -s # 雖然 sensors-detect 希望我可以載入四個模組,不過,鳥哥分析的結果, # 發現我只要兩個模組載入即可~所以,這裡我有省去兩個 modules 的載入喔! # 當然啦!建議你還要看一看 /etc/sysconfig/lm_sensors 檔案的內容,就比較更清楚了! [root@linux ~]# sync; sync; reboot # 雖然可以直接利用上述的指令在 bash 當中直接處理,不過我不喜歡這樣,所以囉, # 直接給他重新啟動系統,就 OK 啦!另外,觀察一下是否開機即啟動 lm_sensors? [root@linux ~]# chkconfig --list | grep lm_sensors lm_sensors 0:off 1:off 2:on 3:on 4:on 5:on 6:off 3. 測試偵測主機的狀況! [root@linux ~]# sensors via686a-isa-6000 Adapter: ISA adapter CPU1 core: +1.73 V (min = +1.65 V, max = +1.90 V) CPU2 core: +1.73 V (min = +1.65 V, max = +1.90 V) I/O: +3.42 V (min = +3.12 V, max = +3.45 V) +5V: +5.18 V (min = +4.73 V, max = +5.20 V) +12V: +12.24 V (min = +11.35 V, max = +12.48 V) CPU1 Fan: 4963 RPM (min = 3000 RPM, div = 2) CPU2 Fan: 5232 RPM (min = 3000 RPM, div = 2) CPU1 Temp: +39.7°C (high = +65°C, hyst = +55°C) CPU2 Temp: +40.4°C (high = +65°C, hyst = +55°C) SBr Temp: +23.3°C (high = +65°C, hyst = +60°C) # 呵呵呵呵!不但可以看到溫度、電壓,還有風扇轉速,實在太完美了! # 咦!怎麼會是雙 CPU 啊!呵呵!因為鳥哥的主機板 (這個測試的平台) 是雙 CPU 平台, # 但是 lm_sensors 並沒有幫我主動的分出雙 CPU ,所以,鳥哥是自行進入設定檔, # 亦即是 /etc/sensors.conf 去進行修訂的工作!基本上,只要這樣的步驟,您的主機就可以主動的偵測溫度與電壓,還有風扇轉速等等資訊。 不過,事實上,由於主機板設計的不同,所以偵測的結果很有可能是有誤差的。以鳥哥的情況來說, VIA 694D 是適用雙 CPU 的主機板,但是 lm_sensors 假定則是僅有單顆 CPU 的顯示狀況, 所以,顯示的結果與實際的數據是有差異的~此時或許就需要進行調校了。 調校的步驟很簡單,先確定使用 sensors 顯示的結果每個項目代表的意義 (可以參考 BIOS 硬體偵測結果的順序來排列) ,然後進入 /etc/sensors.conf 進行修改即可。 鳥哥以自己的 via686a 這個晶片組來說明!
[root@linux ~]# vi /etc/sensors.conf # 在這個檔案當中,先找到你的主機板晶片組,參考其內容喔! # 至於除了 chip 後面接的是晶片組外,其他的則以底下的格式來書寫的: # label '實際偵測的輸出或者是代號' '使用 lm_sensors 輸出的資訊' # 舉例來說,第一顆 CPU 的偵測項目其實是 "2.0V" ,那個是實際存在 # 主機板當中的一個項目,至於後面的 CPU1 core 則是我們自己加上去的, # 這樣才可以在使用 sensors 時,看到輸出的結果啊!因此, # 那個 "2.0V" 不要動~動的是那個 "CPU1 core" 喔! chip "via686a-*" label "2.0V" "CPU1 core" label "2.5V" "CPU2 core" label "3.3V" "I/O" label "5.0V" "+5V" label "12V" "+12V" label fan1 "CPU1 Fan" label fan2 "CPU2 Fan" label temp1 "CPU1 Temp" label temp2 "CPU2 Temp" label temp3 "SBr Temp" # 至於底下的 set 則是在設定『最大、最小限制值』就是了~ # 其中,底下那個 in0 及 in1 分別代表第一、第二個 label 的意思,亦即是 # CPU1 core 及 CPU2 core 啦~再來,則是 temp1~3 , # 注意,如果項目不是 "2.0V" 這種以雙引號取出的,則必須要使用原本的名稱, # 亦如 fan1, fan2 等等,這個務必瞭解才行! set in0_min 1.65 set in0_max 1.90 set in1_min 1.65 set in1_max 1.90 set temp1_hyst 55 set temp1_over 65 set temp2_hyst 55 set temp2_over 65 set temp3_hyst 60 set temp3_over 65 set fan1_min 3000 set fan2_min 3000修改完畢之後,就可以準備準備加入更新囉~那就是使用:
[root@linux ~]# sensors -s
確定更新了這個資訊之後,再下達 sensors ,嘿嘿嘿嘿!就可以順利的取得屬於正確的資訊啦!
當然,如果想要以圖表輸出的話,那麼不妨搭配 MRTG 來進行網頁繪圖~
這部分網路上面文章就比較多一點,也可以先參考鳥哥的一篇舊文章:
加油囉! ^_^
[root@linux ~]# cd /usr/share/cups/model [root@linux model]# wget http://www.linuxprinting.org/foomatic-db/db/ source/PPD/HP/mono_laser/hp_LaserJet_2300.ppd [root@linux model]# ls -l -rw-r--r-- 1 root root 55288 Oct 24 00:52 hp_LaserJet_2300.ppd這就是等一下我們要使用的模組。請注意,在 cups 使用的模組上面, 都是被放置到 /usr/share/cups/model 內!不要隨便擺放~因為我們後面要使用的指令, 會主動讀取這個目錄內的主要 PPD 定義檔啊!
[root@linux ~]# /etc/init.d/cups start [root@linux ~]# netstat -tlunp | grep 631 tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 7228/cupsd udp 0 0 0.0.0.0:631 0.0.0.0:* 7228/cupsd [root@linux ~]# nmap 192.168.10.119 Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2005-11-11 14:15 CST Interesting ports on hp2300 (192.168.10.119): (The 1652 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 21/tcp open ftp 23/tcp open telnet 80/tcp open http 280/tcp open http-mgmt 443/tcp open https 515/tcp open printer 631/tcp open ipp 9100/tcp open jetdirect # 嘿嘿!遠端的 Printer 確實是有提供 631 這個 port 的! # 假如您具有 USB 印表機的話,那麼應該就要變成這樣: [root@linux ~]# echo "Testing printer" > /dev/usb/lp0 # 如果印表機有資料輸出,那麼就表示連線沒有問題啊!由於不同的印表機連線模式會產生不一樣的測試方法, 所以囉,如果是接在本機上面的,直接使用最簡單的資料流重導向就可以測試了! 如果是網路印表機,那就直接測試網路連線與使用 nmap 來進行測試啦~ 那個 nmap 我們會在伺服器篇在好好的談~現在只要知道他可以用來偵測某部主機的開啟的 port, 算是一個簡單的駭客軟體~所以,不要拿 nmap 來偵測別人的主機!會有司法問題喔!
1. 加入印表機到 CUPS 當中: [root@linux ~]# lpadmin -p [pritner佇列] -v [裝置代號] -m [model] -E 參數: -p :後面接印表機的名稱,注意,這個名稱是你自訂的,可以隨便取一個你記得住的名字 -v :後面接的是裝置代號,可以是本機的序列埠或者是 USB ,當然也可以是網路印表機 序列埠 : parallel:/dev/lp0 USB : usb:/dev/usb/lp0 網路印表機: ipp://192.168.10.119/ -m :就是剛剛提到的那個 ppd 定義檔。這個檔案必須要被放置到 /usr/share/cups/model 當中,然後以該目錄作為相對路徑來書寫檔名喔! -E :作為接受 (enable) 列印工作的意思 2. 設定預設或刪除印表機 [root@linux ~]# lpadmin [-xd] [printer佇列] 參數: 注意, -x 與 -d 不能同時使用,另外, printer佇列 必須是已存在的印表機名稱 -x :刪除一個在 CUPS 管理的印表機 -d :若有多部印表機存在 CUPS 當中,使用 -d 可以指定一部預設的印表機。 則當我們在列印時,忘記選擇印表機型式,則以此部預設印表機來列印。 範例一:在本例中,加入一部網路印表機,我的印表機佇列填入 laserjet2300 [root@linux ~]# lpadmin -p laserjet2300 -v \ > ipp://192.168.10.119/ -m hp_LaserJet_2300.ppd -E # 那個 laserjet2300 是自己設定的,怎麼設定都沒關係啦! # 至於 hp_LaserJet_2300.ppd 則是我們剛剛由網站下載的檔案, # 注意,一定要放在 /usr/share/cups/model/ 目錄當中喔!注意注意! 範例二:加入一個 usb 的印表機喔! [root@linux ~]# lpadmin -p laserjet2300 -v \ > /dev/usb/lp0 -m hp_LaserJet_2300.ppd -E 範例三:讓 laserjet2300 這部印表機成為預設印表機! [root@linux ~]# lpadmin -d laserjet2300 範例四:刪除 laserjet2300 這部印表機: [root@linux ~]# lpadmin -x laserjet2300其實剛剛這個 lpadmin 的動作,只是在更新 /etc/cups/ 目錄裡面的兩個資料而已, 一個是 /etc/cups/printers.conf ,這個檔案主要是規範了印表機的相關裝置、是否接受列印工作、 印表機的佇列名稱、頁面的限制等等,反正就是整個印表機的規範就是了。 至於這個印表機相關的 PPD 檔案則是以印表機的佇列名稱連結到 /etc/cups/ppd/ 目錄下, 以上表的範例一中,我們定義出 laserjet2300 這個佇列,使用的是 hp_LaserJet_2300.ppd 這個定義檔,則你會發現, /etc/cups/ppd/laserjet2300 與 /usr/share/cups/model/hp_LaserJet_2300.ppd 是相同的喔!因為只是要作為一個佇列印表機的對應之用嘛!
[root@linux ~]# cat /etc/cups/printers.conf # Printer configuration file for CUPS v1.1.22rc1 # Written by cupsd on Fri 11 Nov 2005 02:40:01 PM CST <DefaultPrinter laserjet2300> Info laserjet2300 DeviceURI ipp://192.168.10.119/ State Idle Accepting Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 </Printer> # 看到否?剛剛我們使用 lpadmin ,增加的資訊都在這裡啊! # 重點其實是那個 DeviceURI 及 Info 這兩個玩意兒啦!重要的很!
[root@linux ~]# lpr [-E] -P [printer佇列] -# [列印份數] -U [username] file 參數: -E :是否加密的意思~一般不需要這個參數; -P :如果你有兩部以上的印表機,想要在不同的印表機上面列印, 就需要使用 -P 來選擇啊! -# :如果你要一次列印多份文件,用這個 -# 加上份數就對了! -U :有些印表機有限至使用者,此時就得要使用這個參數; 範例: 範例一: [root@linux ~]# lpr -P laserjet2300 /etc/passwd能不能列印除了 cups 的設定之外,印表機是否有設定防火牆也是有關係的喔! 鳥哥最近一次在進行測試時,不知道為了什麼,印表機突然無法接受我 Linux 端的封包要求, 鳥哥就給 Printer 整個重新開機,咦!突然又好了~ 可能是....印表機也需要休息吧?? @_@
[root@linux ~]# lp -d [printer佇列] -n [列印份數] file 參數: -d :後面接的是印表機的佇列名稱。如果有多部印表機才需要指定; -n :就是列印的份數啊! 範例: 範例一:列印出 2 份 /etc/issue 資料 [root@linux ~]# lp -d laserjet2300 -n 2 /etc/issue如果想要瞭解整個列印的資訊,與整個印表機的狀態,可以使用底下的指令啊~
1. 瞭解印表機的目前狀態 [root@linux ~]# lpstat [-adprt] 參數: -a :列出目前可以接受列印工作的印表機佇列名稱; -d :列出目前系統的預設印表機; -p :列出每部印表機的接受工作的狀態,包含工作的 ID; -r :列出目前 CUPS 是否有在運作? -t :列出較為詳細的印表機資訊啊! 範例: 範例一:目前的預設印表機,與系統上面可以接受列印的印表機為: [root@linux ~]# lpstat -a laserjet2300 accepting requests since Jan 01 00:00 [root@linux ~]# lpstat -d system default destination: laserjet2300 範例二:列出目前系統上面所有與印表機有關的資訊? [root@linux ~]# lpstat -t scheduler is running system default destination: laserjet2300 device for laserjet2300: ipp://192.168.10.119/ laserjet2300 accepting requests since Jan 01 00:00 printer laserjet2300 is idle. enabled since Jan 01 00:00 Print file accepted - job ID 3. 2. 列印工作的觀察 [root@linux ~]# lpq [-al] 參數: -a :列出所有印表機上面在佇列當中的工作情況; -l :用其他較長格式來輸出列印的相關資訊 (擁有者與檔案大小等等) 範例: 範例三:顯示出目前所有印表機的工作佇列狀況 [root@linux ~]# lpq -a Rank Owner Job File(s) Total Size 1st root 3 passwd 4096 bytes # 上面的意思是,有一份工作,該工作是列印出 passwd 那個檔案, # 這個工作的號碼是 3 號 (Job) ,該工作的建立者為 root 。 # 這是個很重要的地方,因為該項目僅有 root 可以控制~ # 一般身份使用者,當然不能刪除該項工作啦! 3. 刪除在佇列當中的列印工作 [root@linux ~]# lprm -P [printer佇列] job_id 參數: -P :後面直接指定某部印表機的某個工作號碼。注意,那個 job_id 就是剛剛我們使用 lpq 查看到的那個 Job 的號碼啦! 範例四:將剛剛的看到的那個 job 3 工作刪除! [root@linux ~]# lprm 3 [root@linux ~]# lpq -a no entries # 瞧!當然不見去啦!因為工作被我刪除了嘛! 4. 以 cancel 刪除在佇列當中的列印工作 [root@linux ~]# cancel [-a] job_id 參數: -a :不論佇列裡面有多少等待列印的工作,全部移除! [root@linux ~]# cancel 3 [root@linux ~]# cancel -a其實,整個 Linux 本機上面的列印資訊,到這個時候就已經完成啦! 不過,如果你還想要作額外的控制,或者是想要進行網路分享這部印表機時,嘿嘿! 還得額外的加工,作一些手腳才行喔!底下就告訴你怎麼作吧!
1. 暫時關閉/啟動印表機是否開始列印(但一定都可以接受工作到佇列) [root@linux ~]# /usr/bin/disable [-c] [printer佇列] [root@linux ~]# /usr/bin/enable [printer佇列] 參數: -c :將後面接的那個印表機佇列所等待的工作,全部都刪除。一般不會加上這個參數! disable = cupsdisable enable = cupsenable 範例: 範例一:暫時取消剛剛建立的 laserjet2300 這部印表機的列印工作 [root@linux ~]# disable laserjet2300 [root@linux ~]# lpstat -t scheduler is running system default destination: laserjet2300 device for laserjet2300: ipp://192.168.10.119/ laserjet2300 accepting requests since Jan 01 00:00 printer laserjet2300 disabled since Jan 01 00:00 - Paused # 發現否?目前的工作是暫停的!不過, scheduler 依舊是在進行! # 所以,當然還可以繼續接受佇列的需求喔!讓我們來測試看看! [root@linux ~]# lpr /etc/passwd [root@linux ~]# lpq laserjet2300 is not ready Rank Owner Job File(s) Total Size 1st root 5 passwd 4096 bytes # 嘿嘿嘿嘿!是 not ready ~還沒有準備好嘛! [root@linux ~]# cancel 5 範例二:開始重新讓 laserjet2300 可以開始列印啊! [root@linux ~]# /usr/bin/enable laserjet2300 [root@linux ~]# lpstat -t scheduler is running system default destination: laserjet2300 device for laserjet2300: ipp://192.168.10.119/ laserjet2300 accepting requests since Jan 01 00:00 printer laserjet2300 is idle. enabled since Jan 01 00:00 # 注意一下,因為 bash 本身就含有一個 enable 的內部指令, # 所以,建議您輸入絕對路徑來執行 enable ,或者直接改以 cupsenable 來執行!這個 cupsdisable 與 cupsenable 可以支援讓管理員擁有一段印表機維護的時間, 同時又還可以繼續接受來自使用者的列印需求,真是不錯啊!不過, 萬一我就是明確的不要接受來自使用者的列印工作呢?也就是說,我連等待的工作都不開放, 只要有列印工作需求時,就回報『不能使用』。呵呵!就是 accept/reject 的工作啦!
2. 暫時停止/開啟印表機佇列的功能 [root@linux ~]# reject [printer佇列] [root@linux ~]# accept [printer佇列] 範例一:暫時關閉 laserjet2300 吧! [root@linux ~]# reject laserjet2300 [root@linux ~]# lpstat -t scheduler is running system default destination: laserjet2300 device for laserjet2300: ipp://192.168.10.119/ laserjet2300 not accepting requests since Jan 01 00:00 - Rejecting Jobs printer laserjet2300 is idle. enabled since Jan 01 00:00 Rejecting Jobs [root@linux ~]# lp /etc/passwd lp: unable to print file: server-error-not-accepting-jobs # 瞭解了嗎?如此一來,連工作進入列印等待都不行喔! 範例二:啟動 laserjet2300 吧! [root@linux ~]# accept laserjet2300很好玩吧!透過這四個小東西,我們就可以擁有一段管理維護印表機的時間啦~ ^_^
[root@linux ~]# lpadmin -p samsung -v usb:/dev/usb/lp0 \ > -m Samsung-ML-1210-gdi.ppd -E
1. 修改 /etc/cups/cupsd.conf 的權限控制 [root@linux ~]# vi /etc/cups/cupsd.conf # 找到底下的字眼,新增特殊字體的部分! Port 631 <==確定一下,大約在 434 行左右,會有這個段落 <Location /> <==這個大約在 773 行左右 Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.1.0/24 <==加入這一行吧! </Location> <Location /admin> <==這個大約是在 831 行左右。 AuthType Digest <==把這裡作個修改! AuthClass System Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.1.0/24 <==加入這一行吧! </Location> # 如果你曾經使用 seutp 內的 Printer configuration 設定過印表機的話, # 那應該會看到底下這些字眼,注意,將這些資料通通刪除! <Location /printers/lexmark> Order Deny,Allow Deny From All Allow From 127.0.0.1 AuthType None </Location> # Lines below are automatically generated - DO NOT EDIT Browsing On BrowseProtocols cups BrowseOrder Deny,Allow BrowseAllow from @LOCAL Listen 127.0.0.1:631 # 例如上面這 13 行字,全部通通刪除吧!否則會造成問題! 2. 重新啟動 cups 吧! [root@linux ~]# /etc/init.d/cups restart [root@linux ~]# netstat -tlnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 28018/cupsd # 注意啊!您開啟的監聽網域,必須要是 0.0.0.0 才對,如果出現 127.0.0.1 , # 那就表示您的 cupsd.conf 設定錯誤啦! 3. 設定管理印表機的管理員帳號密碼 [root@linux ~]# lppasswd [-a] [-x] [username] 參數: -a :新增一個管理印表機的帳號 -x :刪除該帳號 注意,該帳號是我們可以隨意取的,不一定要在 /etc/passwd 裡面! [root@linux ~]# lppasswd -a printermaster Enter password: Enter password again: [root@linux ~]# cat /etc/cups/passwd.md5 printermaster:sys:a22ad518d345467ae72d3eb2cf4cdcc1 # 這就是我們利用 lppasswd 建立起來的密碼資料啊!接下來呢?呵呵!直接到區域內的任何一部電腦上面,啟動瀏覽器,直接輸入:『 http://192.168.1.2:631 』假定我的 Linux 主機為 192.168.1.2 ,那就會看到如下畫面:
[root@linux ~]# fdisk -l /dev/hdb
Disk /dev/hdb: 30.7 GB, 30738677760 bytes
16 heads, 63 sectors/track, 59560 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/hdb1 1 19377 9765976+ 83 Linux
/dev/hdb2 19378 38754 9766008 83 Linux
/dev/hdb3 38755 59560 10486224 83 Linux
現在,我想要製作一個 LVM 的磁碟出來,首先,我想要將 /dev/hdb1, /dev/hdb2 這兩個
partition 加入這個 LVM 當中,來談一談怎麼製作吧! ^_^1. 先建立磁碟成為 ID 為 8e 吧! [root@linux ~]# fdisk /dev/hdb Command (m for help): p Disk /dev/hdb: 30.7 GB, 30738677760 bytes 16 heads, 63 sectors/track, 59560 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 19377 9765976+ 83 Linux /dev/hdb2 19378 38754 9766008 83 Linux /dev/hdb3 38755 59560 10486224 83 Linux Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM) Command (m for help): p Disk /dev/hdb: 30.7 GB, 30738677760 bytes 16 heads, 63 sectors/track, 59560 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 19377 9765976+ 8e Linux LVM /dev/hdb2 19378 38754 9766008 8e Linux LVM /dev/hdb3 38755 59560 10486224 83 Linux Command (m for help): w The partition table has been altered! # 瞧到了嗎?沒錯!整個 ID 被更改了! [root@linux ~]# partprobe # 這個指令有趣了!他可以讓核心立刻讀取最新的 partition table # ,而不需要重新開機喔! 2. 開始將原本的磁碟製作成為 PV 的格式喔! [root@linux ~]# pvscan No matching physical volumes found [root@linux ~]# pvcreate /dev/hdb1 Physical volume "/dev/hdb1" successfully created [root@linux ~]# pvcreate /dev/hdb2 Physical volume "/dev/hdb2" successfully created [root@linux ~]# pvscan PV /dev/hdb1 lvm2 [9.31 GB] PV /dev/hdb2 lvm2 [9.31 GB] Total: 2 [18.63 GB] / in use: 0 [0 ] / in no VG: 2 [18.63 GB] # 剛剛我們將整個 partition 改成為 PV 格式後,利用 pvscan # 就可以看到整體的 PV 狀態了。如果要看的更詳細,那就如下所示: [root@linux ~]# pvdisplay --- NEW Physical volume --- PV Name /dev/hdb1 VG Name PV Size 9.31 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID CW7uAt-ZJa3-BMxe-tfti-16WU-OfNV-BQM6d8 --- NEW Physical volume --- PV Name /dev/hdb2 VG Name PV Size 9.31 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 1lc2SK-tfGN-ReOr-3mNi-nDAp-mpmb-lHUQFG # 沒錯吧!確實建立起來了!基本上, PV 的名稱與實際的 partition 剛好相同! # 不過, VG 可就不是這麼回事了。由於我們尚未對這兩個 PV 分配 VG, # 所以上面顯示的 VG Name 就沒有任何資料啊!講是很難,作是很簡單!這樣就將 PV 建立了兩個囉!簡單到不行吧! ^_^
1. 先建立 VG 吧! [root@linux ~]# vgcreate vbirdvg /dev/hdb1 /dev/hdb2 Volume group "vbirdvg" successfully created # 整個 vgcreate 的語法很簡單,就是利用 vgcreate VGname PVname1 PVname2.. # 不過,如果想要修改前面提到的 PE 參數時,就得要加入 -s PE 數值了! [root@linux ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "vbirdvg" using metadata type lvm2 [root@linux ~]# vgdisplay --- Volume group --- VG Name vbirdvg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 18.62 GB PE Size 4.00 MB Total PE 4768 Alloc PE / Size 0 / 0 Free PE / Size 4768 / 18.62 GB VG UUID AZRSJx-FWYF-UIlH-NCh5-NqKS-f4gx-ZR049N 2. 嘗試抽換一下 PV 吧! [root@linux ~]# vgreduce vbirdvg /dev/hdb2 Removed "/dev/hdb2" from volume group "vbirdvg" [root@linux ~]# vgdisplay --- Volume group --- VG Name vbirdvg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 9.31 GB PE Size 4.00 MB Total PE 2384 Alloc PE / Size 0 / 0 Free PE / Size 2384 / 9.31 GB VG UUID AZRSJx-FWYF-UIlH-NCh5-NqKS-f4gx-ZR049N [root@linux ~]# vgextend vbirdvg /dev/hdb2 Volume group "vbirdvg" successfully extended # 基本上,不難吧!這樣就可以抽換整個 VG 的大小啊! # 另外,可以使用 pvscan 看一下 PV 與 VG 的相關性喔! [root@linux ~]# pvscan PV /dev/hdb1 VG vbirdvg lvm2 [9.31 GB / 9.31 GB free] PV /dev/hdb2 VG vbirdvg lvm2 [9.31 GB / 9.31 GB free] Total: 2 [18.62 GB] / in use: 2 [18.62 GB] / in no VG: 0 [0 ]如此一來,我們就建立了一個好大好大的磁碟,他是整合了 /dev/hdb1 及 /dev/hdb2 啦! 由於 VG 的最大容量與 PE 有關,PE 最多限制在 65534 個,但每個 PE 的大小則不固定。 預設 PE 是 4 MB ,如果你想要改成 16MB 的話,那就得要這樣建立:
1. 將整個 vbirdvg 通通分配給 vbirdlv 啊! [root@linux ~]# lvcreate -L [sizeMG] -n [LVname] VGname 參數: -L :後面接容量,容量的單位可以是 M, G 等等; -n :後面接的就是 LV 的名稱啦! 更多的說明應該可以自行查閱吧! man lvcreate [root@linux ~]# lvcreate -L 18.62G -n vbirdlv vbirdvg Rounding up size to full physical extent 18.62 GB Logical volume "vbirdlv" created [root@linux ~]# ll /dev/vbirdvg/vbirdlv lrwxrwxrwx 1 root root 27 Nov 14 21:10 /dev/vbirdvg/vbirdlv -> /dev/mapper/vbirdvg-vbirdlv # 看見了沒有啊!?這就是我們最重要的一個玩意兒了! # 未來所有要掛載的資料,通通是透過這個裝置的! [root@linux ~]# lvscan ACTIVE '/dev/vbirdvg/vbirdlv' [18.62 GB] inherit [root@linux ~]# lvdisplay --- Logical volume --- LV Name /dev/vbirdvg/vbirdlv VG Name vbirdvg LV UUID B6kSrg-9LMG-gqVy-jjz8-x0gM-ya9S-XLFcZN LV Write Access read/write LV Status available # open 0 LV Size 18.62 GB Current LE 4767 Segments 2 Allocation inherit Read ahead sectors 0 Block device 253:0如此一來,整個 partition 也準備好啦!
[root@linux ~]# mke2fs -j /dev/vbirdvg/vbirdlv [root@linux ~]# mkdir /mnt/lvm [root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm [root@linux ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda2 9920624 3029712 6378844 33% / /dev/hda1 101086 16524 79343 18% /boot /dev/hda5 19236308 190776 18068380 2% /disk1 /dev/hda6 161836268 94272 153521136 1% /models /dev/shm 192528 0 192528 0% /dev/shm /dev/mapper/vbirdvg-vbirdlv 19219156 176288 18066588 1% /mnt/lvm [root@linux ~]# fdisk -l /dev/hdb Disk /dev/hdb: 30.7 GB, 30738677760 bytes 16 heads, 63 sectors/track, 59560 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 19377 9765976+ 8e Linux LVM /dev/hdb2 19378 38754 9766008 8e Linux LVM /dev/hdb3 38755 59560 10486224 83 Linux知道那邊不同了嗎?沒錯!原始的 partition 還存在,但是我們卻可以使用額外的 LVM 功能,將來自不同的 partition 的容量整個整合在一起,實在是給他相當的有趣啊! ^_^
[root@linux ~]# umount /mnt/lvm [root@linux ~]# fdisk /dev/hdb Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 8e Changed system type of partition 3 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! [root@linux ~]# partprobe [root@linux ~]# pvcreate /dev/hdb3 Physical volume "/dev/hdb3" successfully created [root@linux ~]# vgextend vbirdvg /dev/hdb3 Volume group "vbirdvg" successfully extended [root@linux ~]# vgdisplay --- Volume group --- VG Name vbirdvg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 3 Act PV 3 VG Size 28.62 GB PE Size 4.00 MB Total PE 7327 Alloc PE / Size 4767 / 18.62 GB Free PE / Size 2560 / 10.00 GB VG UUID AZRSJx-FWYF-UIlH-NCh5-NqKS-f4gx-ZR049N # 沒錯的!是增加了!也可以使用 pvscan 查閱喔! # 而且剩餘的沒有使用的 VG 容量是 10.00 GB 喔!看清楚這個地方! ^_^ [root@linux ~]# pvscan PV /dev/hdb1 VG vbirdvg lvm2 [9.31 GB / 0 free] PV /dev/hdb2 VG vbirdvg lvm2 [9.31 GB / 0 free] PV /dev/hdb3 VG vbirdvg lvm2 [10.00 GB / 10.00 GB free] Total: 3 [28.62 GB] / in use: 3 [28.62 GB] / in no VG: 0 [0 ] [root@linux ~]# lvextend -L +10G /dev/vbirdvg/vbirdlv Extending logical volume vbirdlv to 28.62 GB Logical volume vbirdlv successfully resized [root@linux ~]# lvdisplay --- Logical volume --- LV Name /dev/vbirdvg/vbirdlv VG Name vbirdvg LV UUID B6kSrg-9LMG-gqVy-jjz8-x0gM-ya9S-XLFcZN LV Write Access read/write LV Status available # open 1 LV Size 28.62 GB Current LE 7327 Segments 3 Allocation inherit Read ahead sectors 0 Block device 253:0 [root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm [root@linux ~]# df /mnt/lvm Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vbirdvg-vbirdlv 19219156 176288 18066588 1% /mnt/lvm看到了吧??真是傷腦筋~怎麼會 lv 已經增加了,但是 /dev/vbirdvg/vbirdlv 卻沒有加大呢? 這是因為我們的 ext3 主要資訊在最初規劃時,就已經寫入 super block , 同時 inode 與 block 數量又是固定的,所以,這個容量大小當然不會有變化!那怎麼辦? 沒關係,我們可以使用 ext2/ext3 的工具程式來處理!
[root@linux ~]# resize2fs [-f] [device] [size] 參數: -f :強制進行 resize 的動作! [device]:裝置代號啊! [size] :可以加也可以不加。如果加上 size 的話,那麼就必須要給予一個單位, 譬如 M, G 等等。如果沒有 size 的話,那麼預設使用『整個 partition』 的容量來處理! [root@linux ~]# umount /mnt/lvm [root@linux ~]# resize2fs -f /dev/vbirdvg/vbirdlv resize2fs 1.38 (30-Jun-2005) Resizing the filesystem on /dev/vbirdvg/vbirdlv to 7502848 (4k) blocks. The filesystem on /dev/vbirdvg/vbirdlv is now 7502848 blocks long. [root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm [root@linux ~]# df /mnt/lvm Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/vbirdvg-vbirdlv 29540436 176288 28163696 1% /mnt/lvm嘿嘿!真的放大了吧!!而且如果你已經有填資料在 LVM 磁區當中的話! 這個資料是不會死掉的喔!還是繼續存在原本的磁區當中啦! 整個動作竟然這麼簡單就完成了!原本的資料還是一直存在而不會消失~ 您說, LVM 好不好用啊!
任務 | PV | VG | LV |
搜尋(scan) | pvscan | vgscan | lvscan |
建立(create) | pvcreate | vgcreate | lvcreate |
列出(display) | pvdisplay | vgdisplay | lvdisplay |
增加(extend) | vgextend | lvextend | |
減少(reduce) | vgreduce | lvreduce | |
刪除(remove) | pvremove | vgremove | lvremove |
改變容量(resize) | lvresize |
[root@linux ~]# umount /mnt/lvm [root@linux ~]# lvremove /dev/vbirdvg/vbirdlv Do you really want to remove active logical volume "vbirdlv"? [y/n]: y Logical volume "vbirdlv" successfully removed [root@linux ~]# vgchange -a n vbirdvg 0 logical volume(s) in volume group "vbirdvg" now active [root@linux ~]# vgremove vbirdvg Volume group "vbirdvg" successfully removed [root@linux ~]# pvremove /dev/hdb1 Labels on physical volume "/dev/hdb1" successfully wiped [root@linux ~]# pvremove /dev/hdb2 Labels on physical volume "/dev/hdb2" successfully wiped [root@linux ~]# pvremove /dev/hdb3 Labels on physical volume "/dev/hdb3" successfully wiped最後在用 fdisk 將磁碟的 ID 給他改回來 82 就好啦!整個過程就這樣的啦! ^_^
1. 先進行解壓縮的動作: [root@linux ~]# cd /usr/local/src [root@linux src]# tar -zxvf linux-iscsi-3.6.3.tgz [root@linux src]# cd linux-iscsi-3.6.3c 2. 開始進行編譯與安裝 [root@linux linux-iscsi-3.6.3]# make clean && make [root@linux linux-iscsi-3.6.3]# make install # 首先,會有一些關於核心方面的相關說明,這裡看看即可! Note: using kernel source from /lib/modules/2.4.20-8smp/build containing kernel version 2.4.20-8custom Note: using kernel config from /boot/config-2.4.20-8smp Installing iSCSI driver for Linux 2.4.20-8smp # 再來,則會安裝啟動 iSCSI 的 script ,預設放置到 /etc/rc.d/init.d/iscsi 去! # 同時注意一下,這個程序會自動的加入到 chkconfig 的管理項目當中,因此, # 安裝好的同時,這個 iscsi 就會在開機時主動的啟動了。 The initialization script has been installed as /etc/rc.d/init.d/iscsi. iSCSI has been set up to run automatically when you reboot. # 同時,會將我們的 Linux 主機模擬成為 CISCO 的 iSCSI # 協定的接受器,相關的設定資料會被寫入到 /etc/initiatorname.iscsi 當中。 InitiatorName iqn.1987-05.com.cisco:01.d1dbb1112d38 has already been generated and written to /etc/initiatorname.iscsi. # 接下來這個檔案才是我們所關心的!那就是連結到 iSCSI 儲存裝置的設定檔! # 你必須要根據你的裝置來給予相關的修改後,他才會順利工作喔! Make sure you check and edit the /etc/iscsi.conf file! 3. 開始進行修改的工作: [root@linux ~]# vi /etc/iscsi.conf # 在這個檔案當中新增底下這幾行,注意,帳號、密碼與 IP 均需確定正確喔! Username=account Password=iscsipw DiscoveryAddress=192.168.10.200 Username=account Password=iscsipw 4. 開始啟動 iscsi 囉! [root@linux ~]# /etc/init.d/iscsi start Starting iSCSI: iscsi iscsid fsck/mount [root@linux ~]# vi /var/log/messages iscsid[3208]: version 3.6.3.0 variant (27-Jun-2005) iscsid[3208]: root development build created Mon Jun 27 14:34:43 CDT 2005 iscsid[3209]: INBP boot check returned this_is_inbp_boot = 0 iscsid[3212]: Connected to Discovery Address 192.168.10.200 kernel: iSCSI: bus 0 target 0 = iqn.1994-12.com.promise.target.3b.31. 4.55.1.0.0.20 kernel: iSCSI: bus 0 target 0 portal 0 = address 192.168.10.200 port 3260 group 2 kernel: iSCSI: bus 0 target 0 trying to establish session f5ad6000 to portal 0, address 192.168.10.200 port 3260 group 2 kernel: iSCSI: bus 0 target 0 established session f5ad6000 #1 to portal 0, address 192.168.10.200 port 3260 group 2, alias VTrak M500i kernel: scsi singledevice 0 0 0 0 kernel: Vendor: Promise Model: VTrak M500i Rev: 1122 kernel: Type: Direct-Access ANSI SCSI revision: 04 kernel: Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 kernel: SCSI device sda: 3890624512 512-byte hdwr sectors (1992000 MB) kernel: sda: # 看到了嗎?沒錯!確實有連接到正確的儲存位置了~ # 而且捉到的是 sda 這個裝置代號喔!容量可有 1992000MB 這麼大! # 然後我們來看看系統是否能夠捉到這個裝置呢? [root@linux ~]# fdisk -l Disk /dev/sda: 1991.9 GB, 1991999750144 bytes 64 heads, 32 sectors/track, 1899719 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System [root@linux ~]# iscsi-ls ******************************************************************************* SFNet iSCSI Driver Version ... 3.6.3 (27-Jun-2005 ) ******************************************************************************* TARGET NAME : iqn.1994-12.com.promise.target.3b.31.4.55.1.0.0.20 TARGET ALIAS : VTrak M500i HOST NO : 0 BUS NO : 0 TARGET ID : 0 TARGET ADDRESS : 192.168.10.200:3260 SESSION STATUS : ESTABLISHED AT Thu Nov 10 20:13:43 2005 NO. OF PORTALS : 1 PORTAL ADDRESS 1 : 192.168.10.200:3260,2 SESSION ID : ISID 00023d000001 TSIH 04 ******************************************************************************* # 看到了吧?使用 fdisk -l 可以看到名稱為 /dev/sda 的裝置,使用 iSCSI # 提供的 iscsi-ls 也可以查詢的到相關的資訊呢!真是很不錯啊! 5. 分割 /dev/sda 與格式化! [root@linux ~]# fdisk /dev/sda Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-1899719, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-1899719, default 1899719): Using default value 1899719 Command (m for help): w [root@linux ~]# mke2fs -j /dev/sda1經過這個簡單的動作,我的 Linux 主機已經捉到 iSCSI 儲存裝置, 並且,他就好像是我自己 Linux 本機上面的一個 SCSI 硬碟一樣! 使用的方式幾乎一模一樣~沒有差異呢!真是太方便了~接下來,當然就是要掛載啦!
[root@linux ~]# mkdir /cluster/raid [root@linux ~]# mount -t ext3 /dev/sda1 /cluster/raid [root@linux ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda1 10080488 2950408 6618012 31% / /dev/hda2 5036316 81172 4699312 2% /var /dev/hda3 3020172 33492 2833260 2% /tmp none 773736 0 773736 0% /dev/shm /dev/sda1 1914788196 27040372 1790482212 2% /cluster/raid很有趣吧!這樣就能夠將 iSCSI 掛載到我們的機器上囉~
[root@linux ~]# vi /etc/fstab.iscsi /dev/sda1 /cluster/raid ext3 defaults 0 0如此一來,開機就會自動的掛載該 iSCSI 的裝置啦!就是這麼簡單啊!^_^