日历
| |||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | 4 | ||||||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
| 26 | 27 | 28 | 29 | 30 | 31 | ||||
存档
搜索标题
最新来客
统计信息
- 访问量: 120
- 日志数: 4
- 书签数: 25
- 建立时间: 2008-02-19
- 更新时间: 2008-02-19
我的最新日志
-
Linux启动问题
2008-2-19
一、启动冲突
造成启动冲突的原因往往只有一个,MBR覆盖。比如先装的XP再装的Linux,Linux就会把XP安装时写入MBR的数据给覆盖掉,如果先装Ubuntu再装Fedora,Fedora的GRUB会安装到MBR上覆盖了Ubuntu的GRUB。这些情况都可能会造成某些操作系统不能启动。
幸好Linux在这方面还算人性化,它在覆盖XP在MBR中的数据之后,会自动搜索可启动的Windows分区,并且把XP的启动信息写到自己GRUB的menu.lst中,这样在装完Linux后能在启动菜单上看见原先的 Windows启动项(通常在最后一项)。
而有时候不小心会把Windows弄坏,需要重装Windows,等你Windows重新装好了,Linux也就启动不了了,因为Windows把MBR又给更新了。Windows和Linux抢MBR的矛盾一直如此激化。
那么如何防止两个系统吵架呢?两种方法。
第一种就是事后修复。用任何一张可以引导到grub的启动盘(比如,可以是你的LiveCD),进入grub。如果先进入的是终端,那么以超级用户模式在终端中输入
grub
即可进入终端,然后进行grub修复安装过程,如果你知道你的磁盘序号X(一般为0)和Linux分区序号(Partition Number)Y(从0开始数),那么可以运行:
root (hdX,Y)
setup (hd0)
后面一句的hd0表示把grub写到MBR上。
也可以简单地一句话:
setup (hd0) (hdX,Y)
成功了的话会返回successful
如果不知道或者忘记了Linux的分区序号(磁盘序号你应该知道吧,要是不确定就填0),先键入
root (hdX,
然后按TAB键,将会出现自动补全信息,此时你应该就知道Linux分区所在的序号了吧。
输入完毕后仍旧再进行setup操作。这样重启后GRUB就修复了。
第二种方法就是在重装XP前,先把Linux写在MBR里的信息给保存出来,保存成一个文件,通常这个文件的大小必须是512字节。运行这个命令:
sudo dd if=/dev/sda f=~/linux bs=512 count=1
(如果是SCSI硬盘则为sda,IDE硬盘为hda。of=后面的路径为输出路径,路径和文件名可以任意。)
就可以把MBR中的前512字节的信息保存到用户文件夹下名为linux的文件中。
然后重装XP,把这个linux文件放到Winodws分区中,为了便于管理,我们习惯上将其放入C盘根目录下。
接着修改XP的boot.ini,在最后一行添加如下语句:
c:\linux=”Ubuntu Linux Operation System”
并修改启动菜单读秒的长度。
重启之后想办法进入DOS重写分区表:
fdisk /mbr
再次重启就可以看到,XP的启动管理器中出现了双启动菜单,而选择”Ubuntu Linux Operation System”就和以前进入MBR的时候一样了。这种方法的原理也很清晰,将MBR头512字节(包含启动信息的头512字节啊)保存成文件,让 Windows系统来调用这个文件并且处理启动。
以后重装Windows,只要实现把那个长度为512字节的“linux”文件转移到别处,装完后移回来,修改boot.ini就可以了。
Linux不同发行版之间也需要协调才能和平共处,装了Ubuntu,还想装个Fedora,于是在硬盘上独立分区安装。结果装好后Ubuntu进不去了。想到肯定是Fedora也霸道地把自己的启动信息写到MBR中去而覆盖了Ubuntu的信息了。
于是想到修改menu.lst,因为menu.lst可以显示处理启动菜单。把Ubuntu分区挂载之后,找到Ubuntu下的menu.lst,把和它有关的启动语句给复制到Fedora的menu.lst中,重启电脑,可以了。
二、关于menu.lst
menu.lst用于管理启动菜单项。包括是否隐藏启动菜单、启动菜单倒计时、启动项显示等选项。一般的操作顾名思义就可以看懂是什么意思。
值得一提的是Linux的启动都是通过这两个文件的引导:kernel的vmlinuz-XXXXX和initrd的initrd.img。也就是说需要引导一个操作系统的话,在grub的menu中告知这两个文件所在的分区,加入这两个文件的路径就可以笔记本维修启动了。
比如:
title Ubuntu
root root(hd0,0)
kernerl /boor/vmlinuz-2.6.22-14-generic root=UUID=XXXXXX ro quiet splash locale=zh_CN
initrd /boot/initrd.img-2.6.22-14-generic
三、启动时候的挂载
老是手动挂一个分区太麻烦了,于是想到用fstab来自动挂载
fstab的每一个非注释行都挂了一个分区到对应路径下,其参数分别为:挂载的设备 挂载点 文件格式 挂载模式(此后的一大段我不甚了解)
“挂载的设备”中,我试过/dev/sda1这种的格式,发现不好使;再看看用UUID,先手动挂载需要的盘,在终端键入
ls -l /dev/disks/by-uuid
显示每个分区的uuid,一串乱七八糟的数字,在fstab中写下:
UUID=xxxxxxxxxxxxxx /media/sda8 vfat user,noauto,utf8,umask=000,gid=46 0 0
搞定。 -
Linux的增长
2008-2-19
2月18日,孙永杰在“Linux的春天在哪里?”一文中,引用全球投资公司UBS的一份“调查报告”,声称“Linux在服务器端的使用增长显著放慢”。实际情况是怎样的呢?
实际上,UBS公司在去年9月初发布一份称为“CIO脉搏”(“CIO Pulse”)的季度调查报告,声称“Linux被商务活动的快速接受率(rapid rate of adoption),在过去几年中,似乎在放缓(“is likely to slow”)”。UBS的根据是“在调查中,超过90%的被调查CIO们(那时他们还不是Linux的用户),表示在本年度里面,他们不会在自己的服务器上部署开源操作系统(指Linux)”。UBS还说:“这一数字显著地高于去年的60%(根据类似的调查,“of similar replies”)”。UBS的结论是:“我们相信,可以预料,Linux操作系统的增长较之过去几年的快速增长将变慢(will slow)”。
UBS的调查报告刚一发布,立即遭到人们的反驳。Saugatuck公司的 CEO,Bruce Guptill先生,根据Saugatuck公司的一份调查,指出“UBS的数据虽然是完美的(is sound),但是,这些数据并不能说明Linux的真实增长情况”。Bruce Guptill根据自己公司的调查数据,指出:“与UBS的调查数据相反,Linux的采用(adoption)情况是健康的,而且以“phenomenal rates”(“非凡的速率”)在增长”。为什么,UBS和Saugatuck的调查结论竟如此不同呢?UBS 调查的问题究竟在哪里?实际上,它们存在3个关键的不同之处:
1、UBS所调查的63个CIO们,其实并不完全知道本企业在具体工程项目上(或在生产部门中)关于Linux的实际投入情况。Saugatuck调查发现,有关Linux服务器的实际投入,对于CIO们,常常是“看不见”(“invisible”)的,因为,这些投入纯粹是技术性的(tactical),而且成本很低(指不易引起CIO们的注意)。这种情况,对于大企业表现得更为明显。
2、UBS的调查数据侧重在Linux的新用户方面,Bruce Guptill指出:“增长速度减缓,特别是在新系统的部署方面,并不必然意味着市场本身正在衰退,这就说,这往往表明基本市场本身仍然在增长”。他指出,“UBS的调查对象群体很小,而且很受局限(指局限于Linux的新用户)”,“Linux的真正增长存在于那些已经部署了Linux操作系统为数众多的企业之中”。
3、UBS的调查数据仅局限于在服务器方面,笔记本维修而Saugatuck的调查则包括了服务器和信息基础结构这两个方面。Saugatuck的调查表明,“Linux在服务器和信息基础结构方面正在快速增长(is rapidly growing)”。
结束语:“是的,Linux的增长是慢了一点,但是,那仅是就企业初次(新的)部署Linux方面而言的”。同时,有研究表明,至少到2012年之前,Linux操作系统在已经部署了Linux的众多企业中间将保持两位数的增长率。由此可见,Linux的应用前景是很光明的。
注:用我们的话来讲,UBS是“抓了芝麻,丢了西瓜”,孙永杰还为之叫好,岂不怪哉?
-
LINUX的samba命令
2008-2-19
[albert@koidemrp ~]$ smbstatus |grep DEF_M
PID NAME
9844 /mnt/home/home/novellx/KOIDE/MRP/DEF_M.CDX Mon Feb 18 09:45:45 2008
9828 /mnt/home/home/novellx/KOIDE/MRP/DEF_M.CDX Mon Feb 18 09:41:08 2008
9799 /mnt/home/home/novellx/KOIDE/MRP/DEF_M.CDX Mon Feb 18 09:39:57 2008
9844 /mnt/home/home/novellx/KOIDE/MRP/DEF_M.DBF Mon Feb 18 09:45:45 2008
9828 /mnt/home/home/novellx/KOIDE/MRP/DEF_M.DBF Mon Feb 18 09:41:08 2008
9799 /mnt/home/home/novellx/KOIDE/MRP/DEF_M.DBF Mon Feb 18 09:39:57 2008
根据PID输入:
smbstatus |grep 9844
[albert@koidemrp ~]$ smbstatus |grep 9844
novellx 9844 mrp03 Mon Feb 18 07:48:07 2008
program 9844 mrp03 Mon Feb 18 07:48:06 2008
exe 9844 mrp03 Mon Feb 18 07:48:08 2008
就可以知道mrp03的电脑使用文件。
备注:
linux命令摘录。以备后查。
grep
1.作用
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。 grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
2.格式
grep [options]
3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\ :忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$:匹配正则表达式的结束行。
<:从匹配正则表达式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求。
[ - ]:范围,如[AZ],即A、B、C一直到Z都符合要求。
。 :所有的单个字符。
* :有字符,长度可以为0。
正则表达式是Linux/Unix系统中非常重要的概念。笔记本维修正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。
4.应用实例
查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]{3 }.[0-0。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。
$grep '[0-9 ]{3 }.[0-0' ipfile
补充说明,grep家族还包括fgrep和egrep。 fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持q模式范围的应用及与之相对应的一些更加规范的模式。 -
快速练就Linux高手
2008-2-19
制作可在光盘或U盘上直接运行的Linux
√Linux下强大的分区工具Fdisk
√如何在Linux下读写DOS/Windows分区
√Linux和DOS的常用命令对照表
√电脑无法启动也能备份数据
实战1:能在光盘上直接运行的Linux
对菜鸟来说,Linux繁杂的安装过程令人望而却步,如果省去安装的步骤那该有多好。Ubuntu Live CD能让你心想事成。
第1步:首先从http://www.gtlib.gatech.edu/pub/ ... 10-desktop-i386.iso下载Ubuntu 6.10的ISO镜像文件。
第2步:把下载的ISO文件刻录成CD光盘,这里以Nero为例,启动后直接执行“刻录→刻录镜像”菜单命令进行操作即可。
第3步:把刻录好的光盘放入光驱,重新启动,按Del键进入BIOS设置界面,将光驱设置成第一启动设备。这样再重启后就可以运行光盘上的Ubuntu Linux了。
实战2:可以随身携带的U盘操作系统
现在U盘的容量变得越来越大,数据传送的速度也越来越快,这给我们在U盘上运行操作系统带来了很大便利。下面就借助USB XUbuntu,在U盘(至少1GB或更大)上安装一个Ubuntu Linux。
警告:在这个实战中,要对U盘进行分区、格式化操作(正好详细演习一下Linux的Fdisk分区命令),操作不当就有可能破坏其他分区。所以,一定要先做好重要数据的备份工作,以免造成数据损失!对Linux系统不熟的朋友,最好在高手的指导下进行,或者在VMware虚拟机中进行练习。另外还要先搞清楚自己的电脑支不支持从USB设备启动。
第1步:到http://prdownloads.sourceforge.n ... ubuntu.zip?download下载USBubuntu.zip压缩包文件备用。笔记本维修然后把实战1中制作好的Ubuntu Live CD盘放到光驱中,用它启动电脑。进入Ubuntu Linux启动界面后,选择“Start or install ubuntu”项按回车键启动系统。
第2步:插入U盘,然后单击菜单“Applications→Accessories→Termind”打开命令终端窗口,如图1所示,输入“sudo su”(不含引号,下同)按回车键执行。接着执行“fdisk -l”命令,查看所有可用的设备及分区,记下U盘是哪一个设备分区。一般识别为“/dev/sda”,而我测试用的这个闪盘被识别为“/dev/sdb1”了,下面就以此设备号为例介绍。
第3步:执行“umount /dev/sdb1”命令解除U盘的挂接,接着执行“fdisk /dev/sdb1”命令,出现“Command (m for help:)”提示符,就可以开始对U盘进行分区操作了(此时按“m”键再回车,可以查看完整的Fdisk命令参考)。
1.输入“p”并按回车键显示U盘上的分区状态。可以输入“d”命令删除已有的分区,在显示的类似“partition number(1-4):”的提示符后,按“1”键再按回车键删除它,同样方法,删除其他分区。
2.输入“n”命令创建新分区,在接下来的提示中选择“p”命令设置主分区:按“1”键选择第1个分区;按回车键使用默认的磁盘柱面数;输入“+700M”并按回车键确认,设置分区大小。
3.重新回到“Command (m for help:)”提示符下,按“a”键设置活动分区,按“1”键选择第1分区。回到“Command (m for help:)”提示符下,按“t”键改变分区文件系统,按“6”键将文件系统设置为FAT16格式(若按“l”键可显示全部分区类型的代码)。
4.继续执行“n”命令创建其他分区,输入“p”选择主分区,再选择“2”创建第2个分区,按两次回车键使用默认的柱面数和大小。最后按“w”键将上述设置真正写入分区表中,至此便完成了分区操作(见图2),并退出Fdisk。

