在 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 的设备啦!就是这么简单啊!^_^