2008年10月17日星期五

[转]实例解说 fdisk 使用方法

自我总结:
 
使用fdisk命令添加硬盘
 
1,fdisk -l
2,fdisk /dev/xxx (硬盘)
3, n ....(fdisk里的参数,先把硬盘设置分区,设置类型不能和原来的重复,如果是扩展分区需要在分成逻辑的和windows上的步骤一样,需要查看按 p )
4,mkfs.ext3 /dev/xxx(分区)
5,root@localhost beinan]# mkdir /mnt/sda6
[root@localhost beinan]# mount /dev/sda6 /mnt/sda6
[root@localhost beinan]# df -lh

 
 
 
作者:北南南北
来自:LinuxSir.Org
提要:fdisk 是一款功能强大的分区工具,也是目前在Unix类操作系统中最流行的工具之一;分区工具老字号;本篇只介绍其最简单的分区操作功能;
一、fdisk 的介绍;
fdisk - Partition table manipulator for Linux ,译成中文的意思是磁盘分区表操作工具;本人译的不太好,也没有看中文文档;其实就是分区工具; fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统,比如linux 、fat32、 linux 、linux swap 、fat16 以及其实类Unix类操作系统的文件系统等;当然我们用fdisk 对磁盘操作分区时,并不是一个终点,我们还要对分区进行格式化所需要的文件系统;这样一个分区才能使用;这和DOS中的fdisk 是类似的;
二、合理规划您的硬盘分区;

在操作分区之前,我们要明白硬盘分区一点理论,比如硬盘容量和分区大小的计算;对一个硬盘如何规划分区等,请参考如下文档,谢谢;
《合理规划您的硬盘分区》
三、fdisk -l 查看硬盘及分区信息;
通过
《合理规划您的硬盘分区》 ,我们知道主分区(包括扩展分区)的总个数不能超过四个;也不能把扩展分区包围在主分区之间;根据这个原则,我们划分硬盘分区就比较容易的多;也能为以后减少不必要的麻烦;
1、通过fdisk -l 查看机器所挂硬盘个数及分区情况;
[root@localhost beinan]# fdisk -l

Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         765     6144831    7  HPFS/NTFS
/dev/hda2             766        2805    16386300    c  W95 FAT32 (LBA)
/dev/hda3            2806        9729    55617030    5  Extended
/dev/hda5            2806        3825     8193118+  83  Linux
/dev/hda6            3826        5100    10241406   83  Linux
/dev/hda7            5101        5198      787153+  82  Linux swap / Solaris
/dev/hda8            5199        6657    11719386   83  Linux
/dev/hda9            6658        7751     8787523+  83  Linux
/dev/hda10           7752        9729    15888253+  83  Linux

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+   c  W95 FAT32 (LBA)
/dev/sda2              26         125      806400    5  Extended
/dev/sda5              26          50      201568+  83  Linux
/dev/sda6              51          76      200781   83  Linux



通过上面的信息,我们知道此机器中挂载两个硬盘(或移动硬盘),其中一个是hda 另一个是sda ;如果我们想查看单个硬盘情况,可以通过 fdisk -l /dev/hda1 或者fdisk -l /dev/sda1 来操作;以fdisk -l 输出的硬盘标识为准;其中 hda有三个主分区(包括扩展分区),分别是主分区 hda1 hda2 和hda3(扩展分区) ;逻辑分区是 hda5到hda10;
其中 sda 有两个主分区(包括扩展分区),分别是 hda1 和hda2 (扩展分区);逻辑分区是 sda5 hda6 ;硬盘总容量=主分区(包括扩展分区)总容量
扩展分区容量=逻辑分区总容量通过上面的例子,我们可以得知 hda=hda1+hda2+hda3,其中hda3=hda5+hda6+hda7+hda8+hda9+hda10 ... ...

2、关于fdisk -l 一些数值的说明;



Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
这个硬盘是80G的,有255个磁面;63个扇区;9729个磁柱;每个 cylinder(磁柱)的容量是 8225280 bytes=8225.280 K(约为)=8.225280M(约为);
分区序列    引导    开始      终止    容量      分区类型ID    分区类型
Device         Boot      Start         End      Blocks            Id              System
/dev/hda1     *           1         765        6144831             7              HPFS/NTFS
/dev/hda2              766        2805     16386300             c              W95 FAT32 (LBA)
/dev/hda3             2806        9729    55617030             5              Extended
/dev/hda5             2806        3825     8193118+         83               Linux
/dev/hda6             3826        5100    10241406           83               Linux
/dev/hda7             5101        5198      787153+          82               Linux swap / Solaris
/dev/hda8             5199        6657    11719386           83               Linux
/dev/hda9             6658        7751     8787523+         83               Linux
/dev/hda10           7752        9729    15888253+        83               Linux
说明: 硬盘分区的表示:在Linux 是通过hd*x 或 sd*x 表示的,其中 * 表示的是a、b、c ... ... x表示的数字 1、2、3 ... ... hd大多是IDE硬盘;sd大多是SCSI或移动存储;
引导(Boot):表示引导分区,在上面的例子中 hda1 是引导分区;
Start (开始):表示的一个分区从X cylinder(磁柱)开始;
End (结束):表示一个分区到 Y cylinder(磁柱)结束;
id和System 表示的是一个意思,id看起来不太直观,我们要在fdisk 一个分区时,通过指定id来确认分区类型;比如 7表示的就NTFS 分区;这个在fdisk 中要通过t功能来指定。下面的部份会提到;
Blocks(容量):这是我翻译的,其实不准确,表示的意思的确是容量的意思,其单位是K;一个分区容量的值是由下面的公式而来的; Blocks = (相应分区End数值 - 相应分区Start数值)x 单位cylinder(磁柱)的容量 所以我们算一下 hda1的 Blocks 的大小 : hda1 Blocks=(765-1)x8225.280=6284113.92 K = 6284.113.92M 注:换算单位以硬盘厂家提供的10进位算起,如果以操作系统二进制来算,这个分区容量应该更少一些,得出的这个值和我们通过 fdisk -l 看到的 /dev/hda1的值是大体相当的,因为换算方法不一样,所以也不可能尽可能的精确;再加上分区时的一点损失之类,有时或大或小是存在的;我们查看分区大小或者文件的时候,还是用十进制来计算比较直观;推算办法是 byte 向前推小数点三位就是K ,K单位的值向前推小数点三位就是M,M向前推小数点三位就是G... ... 一般也差不了多少;这么算就行;
3、估算一个存储设备是否被完全划分;

我们估算一个硬盘是否完全被划分,我们只要看 fdisk -l 输出的内容中的 cylinders(柱体) 上一个分区的End 和 下一个分区的Start是不是一个连续的数字,另外要看一下每个硬盘设备的fdisk -l 的开头部份,看一下他的 cylinders(柱体)的值;比如hda设备,我们看到的是 9729 cylinders ;我们通过 hda的分区表可以看到上一个分区的End的值+1 就是下一个分区的Start 的值;比如 hda2的Start的值是 hda1 的End 的值+1,这证明 hda1 和hda2 中间没有空白分区,是连续的,以此类推;在 hda10,我们看到 End 的值是9729 ,而在fdisk -l头部信息中也有9729 cylinders,证明这个硬盘已经完全划分;
Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes


   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+   c  W95 FAT32 (LBA)
/dev/sda2              26         125      806400    5  Extended
/dev/sda5              26          50      201568+  83  Linux
/dev/sda6              51          76      200781   83  Linux
我们再看看 sda 移动储是不是被完全划分了;sda有 125个cylinders (柱体),有一个主分区和一个扩展分区构成;在扩展分区中,我们看到End的值为125,而这个移动硬盘的cylinder也是125,这能说明这个硬盘不可能再添加任何主分区了;根据我们上面所说的 sda1 sda2 sda5 sda6 之间未有任何未划分空间,但sda6 的cylinders (柱体)的End值却是 76 ,而 sda总的cylinders (柱体)有125个,由此看来sda 在 sda6后面有未划分区域;至于sda 有多少未划分空间,我们算一下就知道了;扩展分区总容量是 806400 K ,大约是 806.400M左右,而逻辑分区 sda5 和sda6 的大小加起来是 400M左右,所以还仍有400M左右未划分空间,并且只能划分为链逻辑分区;
四、fdisk 对硬盘及分区的操作,进入fdisk 对硬盘操作阶段;
我们可以对硬盘进行分区操作,前提是您把fdisk -l 弄明白了;通过fdisk -l ,我们能找出机器中所有硬盘个数及设备名称;比如上面的例子,我们会看到两个设备一个是/dev/hda ,另一个是/dev/sda ;

fdisk 操作硬盘的命令格式如下:
[root@localhost beinan]# fdisk    设备
比如我们通过 fdisk -l 得知 /dev/hda 或者 /dev/sda设备;我们如果想再添加或者删除一些分区,可以用
[root@localhost beinan]# fdisk     /dev/hda
或
[root@localhost beinan]# fdisk  /dev/sda
注 在以后的例子中,我们要以 /dev/sda设备为例,来讲解如何用fdisk 来操作添加、删除分区等动作;

1、fdisk 的说明;

当我们通过 fdisk 设备,进入相应设备的操作时,会发现有如下的提示;以 fdisk /dev/sda 设备为例,以下同;
[root@localhost beinan]# fdisk /dev/sda
Command (m for help):  在这里按m ,就会输出帮助;
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition   注:这是删除一个分区的动作;
   l   list known partition types  注:l是列出分区类型,以供我们设置相应分区的类型;
   m   print this menu  注:m 是列出帮助信息;
   n   add a new partition 注:添加一个分区;
   o   create a new empty DOS partition table
   p   print the partition table 注:p列出分区表;
   q   quit without saving changes 注:不保存退出;
   s   create a new empty Sun disklabel   
   t   change a partition's system id  注:t 改变分区类型;
   u   change display/entry units 
   v   verify the partition table
   w   write table to disk and exit  注:把分区表写入硬盘并退出;
   x   extra functionality (experts only)  注:扩展应用,专家功能;
其实我们常用的只有注有中文的,其它的功能我们不常用(呵,主要是我不会用,否则早会卖弄一下了);x扩展功能,也不是常用的;一般的情况下只要懂得 d l m p q t w 就行了;下面以实例操作来详述,没有例子没有办法就,新手也看不懂;

2、列出当前操作硬盘的分区情况,用p;

Command (m for help): p

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+   c  W95 FAT32 (LBA)
/dev/sda2              26         125      806400    5  Extended
/dev/sda5              26          50      201568+  83  Linux
/dev/sda6              51          76      200781   83  Linux




3、通过fdisk的d指令来删除一个分区;



Command (m for help): p    注:列出分区情况;

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+   c  W95 FAT32 (LBA)
/dev/sda2              26         125      806400    5  Extended

/dev/sda5              26          50      201568+  83  Linux
/dev/sda6              51          76      200781   83  Linux

Command (m for help): d 注:执行删除分区指定;
Partition number (1-6): 6  注:我想删除 sda6 ,就在这里输入 6 ;

Command (m for help): p 注:再查看一下硬盘分区情况,看是否删除了?

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes


   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+   c  W95 FAT32 (LBA)
/dev/sda2              26         125      806400    5  Extended
/dev/sda5              26          50      201568+  83  Linux

Command (m for help):
警告:删除分区时要小心,请看好分区的序号,如果您删除了扩展分区,扩展分区之下的逻辑分区都会删除;所以操作时一定要小心;如果知道自己操作错了,请不要惊慌,用q不保存退出;切记切记!!!!在分区操作错了之时,千万不要输入w保存退出!!!



4、通过fdisk的n指令增加一个分区;



Command (m for help): p

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+   c  W95 FAT32 (LBA)
/dev/sda2              26         125      806400    5  Extended
/dev/sda5              26          50      201568+  83  Linux

Command (m for help): n  注:增加一个分区;
Command action
   l   logical (5 or over)  注:增加逻辑分区,分区编号要大于5;为什么要大于5,因为已经有sda5了;
   p   primary partition (1-4) 注:增加一个主分区;编号从 1-4 ;但sda1 和sda2都被占用,所以只能从3开始;
p
Partition number (1-4): 3
No free sectors available  注:失败中,为什么失败?
注:我试图增加一个主分区,看来是失败了,为什么失败?因为我们看到主分区+扩展分区把整个磁盘都用光了,看扩展分区的End的值,再看一下 p输出信息中有125 cylinders;最好还是看前面部份;那里有提到;所以我们只能增加逻辑分区了;
Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l   注:在这里输入l,就进入划分逻辑分区阶段了;
First cylinder (51-125, default 51):   注:这个就是分区的Start 值;这里最好直接按回车,如果您输入了一个非默认的数字,会造成空间浪费;
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M  注:这个是定义分区大小的,+200M 就是大小为200M ;当然您也可以根据p提示的单位cylinder的大小来算,然后来指定 End的数值。回头看看是怎么算的;还是用+200M这个办法来添加,这样能直观一点。如果您想添加一个10G左右大小的分区,请输入 +10000M ;

Command (m for help):




5、通过fdisk的t指令指定分区类型;



Command (m for help): t  注:通过t来指定分区类型;
Partition number (1-6): 6 注:要改变哪个分区类型呢?我指定了6,其实也就是sda6
Hex code (type L to list codes):L  注:在这里输入L,就可以查看分区类型的id了;
Hex code (type L to list codes): b  注:如果我想让这个分区是 W95 FAT32 类型的,通过L查看得知 b是表示的是,所以输入了b;
Changed system type of partition 6 to b (W95 FAT32)  注:系统信息,改变成功;是否是改变了,请用p查看;

Command (m for help): p

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+   c  W95 FAT32 (LBA)
/dev/sda2              26         125      806400    5  Extended
/dev/sda5              26          50      201568+  83  Linux
/dev/sda6              51          75      201568+   b  W95 FAT32




6、fdisk 的退出,用q或者 w;

其中 q是 不保存退出,w是保存退出;
Command (m for help): w
或
Command (m for help): q




7、一个添加分区的例子;

本例中我们会添加两个200M的主分区,其它为扩展分区,在扩展分区中我们添加两个200M大小的逻辑分区;
Command (m for help): p 注:列出分区表;

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n 注:添加分区;
Command action
   e   extended
   p   primary partition (1-4)
p  注:添加主分区;
Partition number (1-4): 1   注:添加主分区1;
First cylinder (1-125, default 1):   注:直接回车,主分区1的起始位置;默认为1,默认就好;
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-125, default 125): +200M   注:指定分区大小,用+200M来指定大小为200M

Command (m for help): n  注:添加新分区;
Command action
   e   extended
   p   primary partition (1-4)
p  注:添加主分区
Partition number (1-4): 2  注:添加主分区2;
First cylinder (26-125, default 26):
Using default value 26
Last cylinder or +size or +sizeM or +sizeK (26-125, default 125): +200M 注:指定分区大小,用+200M来指定大小为200M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e  注:添加扩展分区;
Partition number (1-4): 3  注:指定为3 ,因为主分区已经分了两个了,这个也算主分区,从3开始;
First cylinder (51-125, default 51):  注:直接回车;
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-125, default 125):   注:直接回车,把其余的所有空间都给扩展分区;
Using default value 125

Command (m for help): p

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+  83  Linux
/dev/sda2              26          50      201600   83  Linux
/dev/sda3              51         125      604800    5  Extended

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l  注:添加逻辑分区;
First cylinder (51-125, default 51):
Using default value 51
Last cylinder or +size or +sizeM or +sizeK (51-125, default 125): +200M  注:添加一个大小为200M大小的分区;

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l  注:添加一个逻辑分区;
First cylinder (76-125, default 76):
Using default value 76
Last cylinder or +size or +sizeM or +sizeK (76-125, default 125): +200M 注:添加一个大小为200M大小的分区;

Command (m for help): p  列出分区表;

Disk /dev/sda: 1035 MB, 1035730944 bytes
256 heads, 63 sectors/track, 125 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          25      201568+  83  Linux
/dev/sda2              26          50      201600   83  Linux
/dev/sda3              51         125      604800    5  Extended
/dev/sda5              51          75      201568+  83  Linux
/dev/sda6              76         100      201568+  83  Linux
然后我们根据前面所说通过t指令来改变分区类型;最后不要忘记w保存退出;
五、对分区进行格式化,以及加载;
先提示一下;用 mkfs.bfs mkfs.ext2 mkfs.jfs mkfs.msdos mkfs.vfatmkfs.cramfs mkfs.ext3 mkfs.minix mkfs.reiserfs mkfs.xfs 等命令来格式化分区,比如我想格式化 sda6为ext3文件系统,则输入;
[root@localhost beinan]# mkfs.ext3 /dev/sda6
如果我想加载 sda6到目前系统来存取文件,应该有mount 命令,但首先您得建一个挂载目录;比如 /mnt/sda6 ;
[root@localhost beinan]# mkdir /mnt/sda6
[root@localhost beinan]# mount /dev/sda6 /mnt/sda6
[root@localhost beinan]# df -lh
Filesystem            容量  已用 可用 已用% 挂载点
/dev/hda8              11G  8.4G  2.0G  81% /
/dev/shm              236M     0  236M   0% /dev/shm
/dev/hda10             16G  6.9G  8.3G  46% /mnt/hda10
/dev/sda6             191M  5.6M  176M   4% /mnt/sda6
这样我们就能进入 /mnt/sda6目录,然后存取文件了;具体的权限方法,以及mount 更详细的用法,在以后我会专门写一个帖子;在一帖中放下所有的内容实在有点为难;后记:在本文写完后,我还要写另一个分区工具parted;在 Fedora 4.0 中cfdisk 被去掉了;所以不想介绍这个工具; 《Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》
《实例解说 fdisk 使用方法》
《在Fedora core 4.0 加载NTFS和FAT32分区详述》
《合理规划您的硬盘分区》
《系统引导过程及硬盘分区结构论述》
《Fedora Core 4.0 HAL配置即插即用移动存储(USB及1394)的实践》
《在Linux系统中存储设备的两种表示方法》
 

chenxu
2008-10-17

硬盘分区表等相关知识网络收集

字节,字,位,BCD码
 
简单说
1字节(byte)=8位(bit)
1024字节=1K
1024k=1M
 
 
复杂说
 
字节
字节(Byte):通常将可表示常用英文字符8位二进制称为一字节。

一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间.
符号:英文标点2占一个字节,中文标点占两个字节.

一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,如一个ASCII码就是一个字节,此类单位的换算为:
1千吉字节(KGB,KiloGigaByte)=1024吉字节
1吉字节(GB,GigaByte) =1024兆字节
1兆字节(MB,MegaByte) =1024千字节
1千字节(KB,KiloByte) =1024字节
1字节(Byte) = 8位(bit)
1.2 字符,字节,字符串
理解编码的关键,是要把字符的概念和字节的概念理解准确。这两个概念容易混淆,我们在此做一下区分:
概念描述 举例
字符 人们使用的记号,抽象意义上的一个符号。 '1', '中', 'a', '$', '¥', ……
字节 计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间。 0x01, 0x45, 0xFA, ……
ANSI
字符串 在内存中,如果"字符"是以 ANSI 编码形式存在的,一个字符可能使用一个字节或多个字节来表示,那么我们称这种字符串为 ANSI 字符串或者多字节字符串。 "中文123"
(占7字节)
UNICODE
字符串 在内存中,如果"字符"是以在 UNICODE 中的序号存在的,那么我们称这种字符串为 UNICODE 字符串或者宽字节字符串。 L"中文123"
(占10字节)
由于不同 ANSI 编码所规定的标准是不相同的,因此,对于一个给定的多字节字符串,我们必须知道它采用的是哪一种编码规则,才能够知道它包含了哪些"字符"。而对于 UNICODE 字符串来说,不管在什么环境下,它所代表的"字符"内容总是不变的。

位
二进制数系统中,每个0或1就是一个位(bit),位是内存的最小单位。

BCD码
即BCD代码。Binary-Coded Decimal‎,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制代码。这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧,最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。

由于十进制数共有0、1、2、……、9十个数码,因此,至少需要4位二进制码来表示1位十进制数。4位二进制码共有2^4=16种码组,在这16种代码中,可以任选10种来表示10个十进制数码,共有N=16!/(16-10)!约等于2.9乘以10的10次方种方案。常用的BCD代码列于末。

常用BCD编码方式
最常用的BCD编码,就是使用"0"至"9"这十个数值的二进码来表示。这种编码方式,在中国大陆称之为"8421码"。除此以外,对应不同需求,各人亦开发了不同的编码方法,以适应不同的需求。这些编码,大致可以分成有权码和无权码两种:

有权BCD码,如:8421(最常用)、2421、5421…
无权BCD码,如:余3码、格雷码…
以下为三种常见的BCD编码的比较。

十进数 8421-BCD码 余3-BCD码 2421-A码
(M10) D C B A C3 C2 C1 C0 a3 a2 a1 a0
0 0 0 0 0 0 0 1 1 0 0 0 0
1 0 0 0 1 0 1 0 0 0 0 0 1
2 0 0 1 0 0 1 0 1 0 0 1 0
3 0 0 1 1 0 1 1 0 0 0 1 1
4 0 1 0 0 0 1 1 1 0 1 0 0
5 0 1 0 1 1 0 0 0 0 1 0 1
6 0 1 1 0 1 0 0 1 0 1 1 0
7 0 1 1 1 1 0 1 0 0 1 1 1
8 1 0 0 0 1 0 1 1 1 1 1 0
9 1 0 0 1 1 1 0 0 1 1 1 1



常用BCD码

十进制数 8421码 5421码 2421码 余3码 余3循环码
0 0000 0000 0000 0011 0010
1 0001 0001 0001 0100 0110
2 0010 0010 0010 0101 0111
3 0011 0011 0011 0110 0101
4 0100 0100 0100 0111 0100
5 0101 1000 1011 1000 1100
6 0110 1001 1100 1001 1101
7 0111 1010 1101 1010 1111
8 1000 1011 1110 1011 1110
9 1001 1100 1111 1100 1010

-----------------------

什么是BCD码2006-3-19 13:24:45
bcd码也叫8421码就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,着十个数每个数都有自己的8421码:
0=0000
1=0001
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
8=1000
9=1001
举个例子:
321的8421码就是
3 2 1
0011 0010 0001

具体:

bcd码是十位二进制码, 也就是将十进制的数字转化为二进制, 但是和普通的转化有一点不同, 每一个十进制的数字0-9都对应着一个四位的二进制码,对应关系如下: 十进制0 对应 二进制0000 ;十进制1 对应二进制0001 ....... 9 1001 接下来的10就有两个上述的码来表示 10 表示为00010000 也就是BCD码是遇见1001就产生进位,不象普通的二进制码,到1111才产生进位10000

举例:

某二进制无符号数11101010,转换为三位非压缩BCD数,按百位、十位和个位的顺序表示,应为__c__。
A.00000001 00000011 00000111 B. 00000011 00000001 00000111
C.00000010 00000011 00000100 D. 00000011 00000001 00001001

解:(1)11101010转换为十进制:234

(2)按百位、十位和个位的顺序表示,应为__c__。

"字"这个概念不是计算机语言中的专属概念,也很少用这个概念。是不是与"字节"的概念混淆了?计算机中,一个阿拉伯数字、英文字母(不分大小写)、标点符号等,都是占一个字节,只有汉字是占两个字节的。
其他内容最好使用教材学习,更加系统一些。
百度的百科也是很不错的!
参考资料:百度百科

硬盘分区表详解
 
简单说
硬盘主分区 最多分4个
扩展分区可以分多个
 
复杂说
 
 
硬盘主引导扇区 = 硬盘主引导记录(MBR)+ 硬盘分区表(DPT)
--------------------------------------------------------------
物理位置:0面0道1扇区(clindyer 0, side 0, sector 1)
大小: 512字节
其中:MBR 446字节(0000--01BD),DPT 64字节(01BE--01FD),结束标志2字节(55 AA)
功能:MBR通过检查DPT分区信息引导系统跳转至DBR;
读取: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE――>PHYSICAL DISK-―HARD DISK,
然后, 在OBJECT菜单中选择DISK PARTITION TABLE即可读取, 并使用TOOLS菜单中的WRITE OBJECT TO 选项存入指定文件备份;
写入: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE――>FLOOPY DISK, 选择备份的DPT
文件, 然后使用TOOLS菜单中的WRITE OBJECT TO――>PHYSICAL SECTOR 选项写入001
(clindyer 0, side 0, sector 1);

详解:
000H--08AH MBR启动程序(寻找开机分区)
08BH--0D9H MBR启动字符串
0DAH--1BCH 保留("0")
1BEH--1FDH 硬盘分区表
1FEH--1FFH 结束标志(55AA)


活动分区主引导扇区(DBR)
--------------------------
物理位置:1面0道1扇区(clindyer 0, side 1, sector 1)
大小: FAT16 1扇区 512字节
FAT32 3扇区 1536字节
功能:包含机器CMOS等信息(0000--0059), 核对该信息并引导指定的系统文件, 如NTLDR等;
读取: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE――>LOGICAL DISK-―DISK C,
然后, 在OBJECT菜单中选择BOOT RECORD即可读取, 并使用TOOLS菜单中的
WRITE OBJECT TO 选项存入指定文件备份;
写入: 使用NORTON DISKEDIT, 在OBJECT菜单中选择DRIVE――>FLOOPY DISK, 选择备份的DBR
文件, 然后使用TOOLS菜单中的WRITE OBJECT TO――>PHYSICAL SECTOR 选项写入011
(clindyer 0, side 1, sector 1);


详解:

000H--002H 3 BYTE的跳转指令(去启动程序, 跳到03EH)
003H--03DH BIOS参数区
03EH--19DH DOS启动程序
19EH--1E5H 开机字符串
1E6H--1FDH 文件名(IO.SYS, MSDOS.SYS)
1FEH--1FFH 结束标记(55AA)


硬盘分区表(DPT)
---------------------
偏移地址 字节数 含义分析

01BE 1 分区类型:00表示非活动分区:80表示活动分区;其他为无效分区。

01BF~01C1 3 *分区的起始地址(面/扇区/磁道),通常第一分区的起始地址开始
于1面0道1扇区,因此这三个字节应为010100

01C2 1 #分区的操作系统的类型。

01C3~01C5 3 *该分区的结束地址(面/扇/道)

01C6~01C9 4 该分区起始逻辑扇区

01CA~01CD 4 该分区占用的总扇区数

注释: * 注意分区的起始地址(面/扇区/磁道)和结束地址(面/扇/道)中字节分配:

00000000 01000001 00010101
~~~~~~~~ ==^^^^^^ ========

~ 面(磁头) 8 位
^ 扇区 6 位
= 磁道 10 位

# 分区的操作系统类型(文件格式标志码)

4---DOS FAT16<32M
5---EXTEND
6---DOS FAT16>32M
7---NTFS(OS/2)
83---LINUX>64M


DPT 总共64字节(01BE--01FD), 如上所示每个分区占16个字节, 所以可以表示四个分区, 这也
就是为什么一个磁盘的主分区和扩展分区之和总共只能有四个的原因.


逻辑驱动器
-----------
扩展分区的信息位于以上所示的硬盘分区表(DPT)中, 而逻辑驱动器的信息则位于扩展分区的
起始扇区, 即该分区的起始地址(面/扇区/磁道)所对应的扇区, 该扇区中的信息与硬盘主引导
扇区的区别是不包含MBR, 而16字节的分区信息则表示的是逻辑驱动器的起始和结束地址等.


所以, 在磁盘仅含有一个主分区, 一个扩展分区(包含多个逻辑驱动器)的情况下, 即使由于病毒
或其他原因导致硬盘主引导扇区的数据丢失(包括DPT), 也可以通过逻辑驱动器的数据来恢复整个硬盘.

例如: 以下是一个硬盘的分区情况.

道 面 扇 道 面 扇 起始扇(逻辑) 结束扇 总共扇区
MBR 0 0 1 - - - - - -
C 0 1 1 276 239 63 63 4,188,239 4,188,177
扩 277 0 1 554 239 63 4,188,240 8,391,599 4,203,360
D 277 1 1 554 239 63 4,188,303 8,391,599 4,203,297


如果主分区表损坏, 则可以通过手工查找扩展分区表中所包含的逻辑驱动器数据, 在本例中就是D盘所对应的数据, 然后将其起始扇(逻辑)减去63就是所对应的扩展分区的起始扇(逻辑), 将其起始地址(面/扇区/磁道)改为0面就是扩展分区的起始地址. 然后通过扩展分区就可以得到主分区C的信息, 然后就可以使用FDISK/MBR命令和手工填写分区表恢复整个硬盘.

实际使用这种方法比较麻烦, 如果知道每个分区的大小, 则可以通过使用PQ MAGIC 5 将磁盘重新分区为原来大小(注意: 千万不能应用, 我们只是通过它来获得数据), 并查看INFO来获得以上
数据, 记录以后取消该分区操作, 然后使用NORTON DISK2000手工修改DPT表, 恢复整个硬盘.

该例所对应的分区表数据:

80 01
01 00 06 EF 7F 14 3F 00 00 00 11 E8 3F 00 00 00
41 15 05 EF BF 2A 50 E8 3F 00 60 23 40 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA

扩展分区表数据:
00 01
41 15 07 EF BF 2A 8F E8 3F 00 21 23 40 00


注意: 逻辑起始扇区和总共分区数是左边为低位, 如该例的扩展分区的起始地址为50 E8 3F 00转换十进制时要先变为00 3F E8 50, 总共占用分区数60 23 40 00要先变为00 40 23 60, 同理当手工填写该值时也要进行高低位转换.

李家芳 2K.7.22 哈尔滨   http://www.lslnet.com/linux/docs/linux-3232.htm

 

chenxu
2008-10-17

删除windows黑屏认证 批处理{中招后}

@echo off
sfc /purgecache
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\Wgalogon" /f
taskkill /f /im WgaTray.exe /T
del c:\Windows\system32\WgaTray.exe /f /q
taskkill /f /im WgaTray.exe /T
del c:\Windows\system32\WgaTray.exe /f /q
taskkill /f /im WgaTray.exe /T
del c:\Windows\system32\WgaTray.exe /f /q
taskkill /f /im WgaTray.exe /T
del c:\Windows\system32\WgaTray.exe /f /q
taskkill /f /im WgaTray.exe /T
del c:\WINNT\system32\WgaTray.exe /f /q
taskkill /f /im WgaTray.exe /T
del c:\WINNT\system32\WgaTray.exe /f /q
taskkill /f /im WgaTray.exe /T
del c:\WINNT\system32\WgaTray.exe /f /q
echo. & pause
 

chenxu
2008-10-17

[转]微软正版验证:最快的方法通过XP正版验证 解决黑屏

http://article.pchome.net/content-734671.html

微软正版验证方法一:

第一步:下载微软正版认证离线包..然后安装

下载地址: http://www.onegreen.net/Soft_Url.asp?UrlID=1&SoftID=1667

第二步:下载Microsoft Office 2003 SP3 MSCD 五合一精简贺岁版

下载地址: http://www.greendown.cn/soft/156.html

最后一步:就是登陆微软正版验证网站验证是否正版...验证结果:全部通过认证.

微软正版验证地址: http://www.microsoft.com/genuine/default.aspx?displaylang=zh-cn


微软正版验证方法二:

1.不要打kb905474补丁,其更新日期为9/23/2008,版本为1.8.0031.9

2.黑屏以后不要慌,

开始-运行-输入REGEDIT回车,在左边栏中找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\NotifyWgaLogon项

将整个WgaLogon项删除即可。以上为经过测试的最简便方法。

这次的WGA与上次相比只增加了LegitCheckControl.dll,主要执行方式(通过WINLOGON加载)未变。显然微软此举可归为常规性不定期"恐吓",此举也是对于盗版的无奈。





chenxu
2008-10-17



2008年10月16日星期四

职场1

老板:万分欢迎,没有你我们的公司肯定大不一样!
职员:如果工作太累,搞不好我会辞职的。
老板:放心,我不会让这样的事情发生的!
职员:我双休日可以休息吗?
老板:当然了!这是底线!
职员:平时会天天加班到凌晨吗?
老板:不可能,谁告诉你的?
职员:有餐费补贴吗?
老板:还用说吗,绝对比同行都高!
职员:有没有工作猝死的风险?
老板:不会!你怎么会有这种念头?
职员:公司会定期组织旅游吗?
老板:这是我们的明文规定!
职员:那我需要准时上班吗?
老板:不,看情况吧
职员:工资呢?会准时发吗?
老板:一向如此!
职员:事情全是新员工做吗?
老板:怎么可能,你上头还有很多资深同事!
职员:如果领导职位有空缺,我可以参与竞争吗啊?
老板:毫无疑问,这是我们公司赖以生存的机制!
职员:你不会是在骗我吧?
进入公司后看真实的一幕(从后往前读)
 

chenxu
2008-10-16

windwos所有服务的命令

gpedit.msc-----组策略                                                                  
sndrec32-------录音机  
  Nslookup-------IP地址侦测器                                                      
explorer-------打开资源管理器  
  logoff---------注销命令                                                              
tsshutdn-------60秒倒计时关机命令  
  lusrmgr.msc----本机用户和组                                                      
 services.msc---本地服务设置  
  oobe/msoobe   /a----检查XP是否激活                                            
notepad--------打开记事本  
  cleanmgr-------垃圾整理                                                              
net   start   messenger----开始信使服务  
  compmgmt.msc---计算机管理                                                          
net   stop   messenger-----停止信使服务  
  conf-----------启动netmeeting                                                  
dvdplay--------DVD播放器  
  charmap--------启动字符映射表                                                  
diskmgmt.msc---磁盘管理实用程序  
  calc-----------启动计算器                                                          
dfrg.msc-------磁盘碎片整理程序  
  chkdsk.exe-----Chkdsk磁盘检查                                                  
devmgmt.msc---   设备管理器  
  regsvr32   /u   *.dll----停止dll文件运行                                    
drwtsn32------   系统医生  
  rononce   -p   ----15秒关机                                                              
dxdiag---------检查DirectX信息  
  regedt32-------注册表编辑器                                                      
Msconfig.exe---系统配置实用程序  
  rsop.msc-------组策略结果集                                                      
mem.exe--------显示内存使用情况  
  regedit.exe----注册表                                                                  
winchat--------XP自带局域网聊天  
  progman--------程序管理器                                                          
winmsd---------系统信息  
  perfmon.msc----计算机性能监测程序                                          
winver---------检查Windows版本    
  sfc   /scannow-----扫描错误并复原  
  taskmgr-----任务管理器(2000/xp/2003  
  winver---------检查Windows版本    
  wmimgmt.msc----打开windows管理体系结构(WMI)    
  wupdmgr--------windows更新程序    
  wscript--------windows脚本宿主设置    
  write----------写字板    
  winmsd---------系统信息    
  wiaacmgr-------扫描仪和照相机向导    
  winchat--------XP自带局域网聊天  
  mem.exe--------显示内存使用情况    
  Msconfig.exe---系统配置实用程序    
  mplayer2-------简易widnows   media   player    
  mspaint--------画图板    
  mstsc----------远程桌面连接    
  mplayer2-------媒体播放机    
  magnify--------放大镜实用程序    
  mmc------------打开控制台    
  mobsync--------同步命令  
  dxdiag---------检查DirectX信息    
  drwtsn32------   系统医生    
  devmgmt.msc---   设备管理器    
  dfrg.msc-------磁盘碎片整理程序    
  diskmgmt.msc---磁盘管理实用程序    
  dcomcnfg-------打开系统组件服务    
  ddeshare-------打开DDE共享设置    
  dvdplay--------DVD播放器  
  net   stop   messenger-----停止信使服务    
  net   start   messenger----开始信使服务    
  notepad--------打开记事本    
  nslookup-------网络管理的工具向导    
  ntbackup-------系统备份和还原    
  narrator-------屏幕"讲述人"    
  ntmsmgr.msc----移动存储管理器    
  ntmsoprq.msc---移动存储管理员操作请求    
  netstat   -an----(TC)命令检查接口  
  syncapp--------创建一个公文包    
  sysedit--------系统配置编辑器    
  sigverif-------文件签名验证程序    
  sndrec32-------录音机    
  shrpubw--------创建共享文件夹    
  secpol.msc-----本地安全策略    
  syskey---------系统加密,一旦加密就不能解开,保护windows   xp系统的双重密码    
  services.msc---本地服务设置    
  Sndvol32-------音量控制程序    
  sfc.exe--------系统文件检查器    
  sfc   /scannow---windows文件保护  
  tsshutdn-------60秒倒计时关机命令    
  tourstart------xp简介(安装完成后出现的漫游xp程序)    
  taskmgr--------任务管理器  
  eventvwr-------事件查看器    
  eudcedit-------造字程序    
  explorer-------打开资源管理器  
  packager-------对象包装程序    
  perfmon.msc----计算机性能监测程序    
  progman--------程序管理器  
  regedit.exe----注册表    
  rsop.msc-------组策略结果集    
  regedt32-------注册表编辑器    
  rononce   -p   ----15秒关机    
  regsvr32   /u   *.dll----停止dll文件运行    
  regsvr32   /u   zipfldr.dll------取消ZIP支持  
  cmd.exe--------CMD命令提示符    
  chkdsk.exe-----Chkdsk磁盘检查    
  certmgr.msc----证书管理实用程序    
  calc-----------启动计算器    
  charmap--------启动字符映射表    
  cliconfg-------SQL   SERVER   客户端网络实用程序    
  Clipbrd--------剪贴板查看器    
  conf-----------启动netmeeting    
  compmgmt.msc---计算机管理    
  cleanmgr-------垃圾整理    
  ciadv.msc------索引服务程序  
  osk------------打开屏幕键盘    
  odbcad32-------ODBC数据源管理器    
  oobe/msoobe   /a----检查XP是否激活    
  lusrmgr.msc----本机用户和组    
  logoff---------注销命令  
  iexpress-------木马捆绑工具,系统自带  
  Nslookup-------IP地址侦测器  
  fsmgmt.msc-----共享文件夹管理器  
  utilman--------辅助工具管理器  
  gpedit.msc-----组策略
 

chenxu
2008-10-16

关闭windows自动更新的批处理

echo off
net stop wuauserv
echo.
echo.
net stop BITS
echo.
echo.
echo Automatic Updates 服务正在禁用.
sc config wuauserv start= disabled >nul
echo Automatic Updates 服务已成功禁用。
echo.
echo.
echo Background Intelligent Transfer Service 服务正在被禁用
sc config BITS start= disabled >nul
echo Background Intelligent Transfer Service 服务已成功禁用
echo.
echo.

Set /p tz=服务是否被关闭(是y/否n):
if %tz%==y goto chengg
if %tz%==n goto shibai
:shibai
echo 请手动禁用 服务里 {Automatic Updates},{Background Intelligent Transfer Service}
pause
echo 稍等正在开启服务窗口
services.msc
exit
:chengg
echo 右键【我的电脑】 点击 {属性} 在弹出菜单栏里 选择 {自动更新} 选择关闭自动更新!
echo 操作完毕后按任意键结束
pause >nul
exit

wincvs提交问题1

使用者 10:18:27
窗口下面有个平铺
使用者 10:19:10
没有查看选项
使用者 10:20:37
我刚给你发的那个截图 是不是光提交JAVA文件 CLASS文件不用提交?
使用者 10:21:39
Warning : 'Nybz.java' seems to be 'binary', you should use the 'Add binary' command instead...
使用者 10:21:59
这个似乎不能以"文件"方式添加
陈旭 10:23:47
你这个文件提交过还是新提交
使用者 10:22:45
还没提交过
陈旭 10:24:59
最好是用二进制提交。这样文件里的中文注释不会出现乱码
使用者 10:24:36
对了 我以前用文件方式提交的,现在还能改成二进制方式不?
陈旭 10:26:30
改不了。
使用者 10:25:22
哦
陈旭 10:27:17
第一次提交就确定了这个文件一直都是按这个类型存放了
使用者 10:26:41
哦 只有一个HBM文件用"文件"方式提交的
使用者 10:27:28
我刚给你发的那个截图 是不是光提交JAVA文件, CLASS文件不用提交?
陈旭 10:29:25
判断文件是否以文本方式提交的依据是此文件是否可以用记事本打开,并且正确无误,此文件就可以按文本方式提交
使用者 10:28:41
哦 那个文件可以
陈旭 10:30:09
反之 就用二进制, 如果怕错误都可以使用二进制
使用者 10:29:10
二进制是通用的 对吧?
陈旭 10:31:13
恩是的
使用者 10:30:53
哦 知道了
陈旭 10:32:24
你的菜单里没有平铺 这个问题 你看下你的wincvs是否是wincvs三合一汉化版本 如果是wincvs汉化版可能翻译的名称不一样
使用者 10:32:09
我的是wincvs 1.3中文版
陈旭 10:33:57
那就是汉化名称不一样
使用者 10:33:33
图片能看到不?
陈旭 10:35:21
你给我图片了?
使用者 10:34:13
陈旭 10:35:54
看到了
使用者 10:34:49
这是我服务器上更新下来的文件 为什么还有这么多问号?
陈旭 10:36:33
你那些class文件提交没?
使用者 10:35:16
这些带问号的文件还用提交不?
使用者 10:35:54
没有提交
陈旭 10:37:26
wincvs更新不会修改你目录下原有文件(此文件在cvs服务器上没有的)
使用者 10:37:27
哦
陈旭 10:40:02
如果有同名的文件(同名是指本地没有提交过,并且没有受控)wincvs会报错。
如果修改过没有即时提交,这时有选择更新文件 wincvs会包修改的问价备份保存。格式是#+文件名+修改时的版本
使用者 10:39:26
哦 这样啊
使用者 10:39:38
陈旭 10:41:18
非cvs文件就是没有受控的文件



chenxu
2008-10-16

sqlserver 无法删除用户

碰到一个数据库下无法删除用户的情况,总是提示"该用户拥有对象,无法删除",最后老大过来解释后,发现原来在该用户下有几个表对象,用sql语句去改变那些表的用户的语句:
sp_changeobjectowner 'can.WCMDocQuoteImage','dbo'
注意,这里can是要删除的用户,同时它拥有对象--WCMDocQuoteImage,最后我们改变成让dbo拥有这个对象。 

begin
sp_changeobjectowner 'designer.PMAMAP','trd'
go
sp_changeobjectowner 'designer.PMARTF','trd'
end
批量执行转换命令
 
 
   
  通过执行   sp_addlogin,把登录   janetl   改名为   dbo。    
  sp_addlogin   'janetl',   'dbo'  
   
  备份数据库。在本例中,备份   Northwind。    
  BACKUP   DATABASE   Northwind  
  TO   DISK   =   'c:\mssql\backup\northwnd'  
   
  除去刚刚备份的数据库。    
  DROP   DATABASE   Northwind  
   
  除去登录。    
  sp_droplogin   'janetl'  
   
  还原备份的数据库。    
  RESTORE   DATABASE   Northwind  
  FROM   DISK   =   'c:\mssql\backup\northwnd'  
   
  janetl   登录不能访问   Northwind   数据库,除非允许   guest   登录。尽管   janetl   登录已经删除,它仍然(作为一个孤立行)显示在   sysusers   表中:  
   
  USE   Northwind  
  SELECT   *  
  FROM   sysusers  
  WHERE   name   =   'janetl'  
   
  解决孤立用户问题    
   
  用   sp_addlogin   添加一个临时登录。为孤立用户指定安全标识符   (SID)(从   sysusers)。    
  sp_addlogin   @loginame   =   'nancyd',  
          @sid   =   0x32C864A70427D211B4DD00104B9E8A00  
   
  用   sp_dropalias   除去属于别名   SID   的临时别名。    
  sp_dropalias   'nancyd'  
   
  用   sp_dropuser   除去原始用户(即现在的孤立用户)。    
  sp_dropuser   'janetl'  
   
  用   sp_dropuser   除去原始登录。    
  sp_droplogin   'nancyd'  
 

chenxu
2008-10-16

2008年10月14日星期二

删除多少天前的文件 批处理

forfiles /P I:\DBBACK /D -3 /C "cmd /c del @file"
 

chenxu
2008-10-14

VSS 启动是报sis 配置文件错误

在use 目录下打开自己帐户命名的文件夹 打开下面的文件删除登陆信息和操作信息就ok了
 

chenxu
2008-10-14

mantis api 附加工具MantisConnect配置(1)

MantisConnect-1.0a5 这个工具需要mantis里添加api 1.1.x版本前没有api 需要把MantisConnect-1.0a5目录下的 webservice 目录放到mantis目录下,然后修改webservice 下 mantisconnect.php这个文件
 
 $l_oServer->xml_encoding = "gb2312";
 $l_oServer->soap_defencoding = "gb2312"; 默认都是utf8 由于我的数据库是gb2312的字符集修改下。
 
然后就是修改 MantisConnect-1.0a5 目录下有bin文件夹下面 对应 .exe 的conf文件
 
MantisSubmit.exe.config配置如下 (mantis 1.1.2)
        <add key="MantisConnectWebsite" value="http://localhost/mantis/api/soap/nusoap/" />  ## mantis1.1.2目录下自带了api 所以就不用mantisconnect目录下的了
     <add key="MantisConnectUrl" value="http://localhost/mantis/api/soap/mantisconnect.php" />
        <add key="MantisUserName" value="登陆mantis用户" />
        <add key="MantisPassword" value="登陆mantis密码" />
        <add key="BasicHttpAuthUserName" value="" />
        <add key="BasicHttpAuthPassword" value="" />
 
其他的exe配置和它大同小异,不在写出。

chenxu
2008-10-14

中毒后显示隐藏文件夹方法

中毒后设置显示文件夹隐藏的选项被修改了,以下是修改回来方法
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
 
 
Explorer\Advanced\Folder\Hidden\SHOWALL
找到这个,看右边的。肯定有个CheckedValue 项,但是,被修改过的这个类型就不是DWORD类型了,往往人们改的时候没有注意到这个问题,光把值改为1,肯定是不起作用的。
所以,终极办法就是,删除CheckedValue 项,自己建个DWORD类型的CheckedValue,然后把值改为1,肯定ok
 

chenxu
2008-10-14

2008年10月13日星期一

redhatA4 注册用户密码问题

redhat a4  用户长期不登陆密码就会失效,不知道如何解决? (除了root密码)
 

chenxu
2008-10-13

linux命令修改用户密码[转]

http://www.s169.cn/show-43-1.html

添加新的用户账号使用useradd命令,其语法如下:

  useradd 选项 用户名

  其中各选项含义如下:

  -c comment 指定一段注释性描述。

  -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

  -g 用户组 指定用户所属的用户组。

  -G 用户组,用户组 指定用户所属的附加组。

  -s Shell文件 指定用户的登录Shell。

  -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

  用户名 指定新账号的登录名。

  例如:

  # useradd �d /usr/sam -m sam

  此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。

  # useradd -s /bin/sh -g group �G adm,root gem

  此命令新建了一个用户gem,该用户的登录Shell是/bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。

  增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。这几个文件的内容在后面会做详细介绍。

  Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。

  如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。删除一个已有的用户账号使用userdel命令,其格式如下:

  userdel 选项 用户名

  常用的选项是-r,它的作用是把用户的主目录一起删除。

  例如:

  # userdel sam

  此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

  修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

  修改已有用户的信息使用usermod命令,其格式如下:

  usermod 选项 用户名

  常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。另外,有些系统可以使用如下选项:

  -l 新用户名

  这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

  例如:

  # usermod -s /bin/ksh -d /home/z �g developer sam

  此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。

  用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

  指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:

  passwd 选项 用户名

  可使用的选项:

  -l 锁定口令,即禁用账号。

  -u 口令解锁。

  -d 使账号无口令。

  -f 强迫用户下次登录时修改口令。

  如果默认用户名,则修改当前用户的口令。

  例如,假设当前用户是sam,则下面的命令修改该用户自己的口令:

  $ passwd

  Old password:******

  New password:*******

  Re-enter new password:*******

  如果是超级用户,可以用下列形式指定任何用户的口令:

  # passwd sam

  New password:*******

  Re-enter new password:*******

  普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

  为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。

  为用户指定空口令时,执行下列形式的命令:

  # passwd -d sam

  此命令将用户sam的口令删除,这样用户sam下一次登录时,系统就不再询问口令。

  passwd命令还可以用-l(lock)选项锁定某一用户,使其不能登录,例如:

  # passwd -l sam

 

chenxu
2008-10-13

itanium 与 xeon 区别

itanium(安腾)是intel早期开发的纯64位处理器,不能运行32位程序。故未投放于民用市场,只提供给了IBM等大公司用于数据服务器。所以可了解的资料不多。xeon是intel公司用于小型服务器的32位处理器,2M缓存,性能强劲稳定,支持最大16路对称多处理器。

从奔腾D到安腾2 英特尔双核处理器历史

最早的双核并非英特尔:

毫无疑问,处理器市场上英特尔的"双核"处理器越来越热,其实双核并不是由英特尔首创。早在2001年,在服务器领域,IBM就推出了在一个处理器上集成两个运算核心,从而提高计算能力的POWER4处理器;随后Sun和惠普都先后推出了基于双核架构的UltraSPARC以及PA-RISC 芯片。

英特尔的第一颗双核:

2005年4月18日,英特尔历史上第一颗双核心处理器奔腾至尊版840以及配套的Intel 955X芯片组,英特尔将这款处理器定位于高端娱乐应用,针对的是愿意花费大笔金钱的游戏玩家。



Intel 奔腾 EE 840 3.2GHz
产品背视图
Intel 奔腾 EE 840 3.2GHz

英特尔超线程(HT)技术能够使一枚处理器发挥两枚逻辑处理器的作用。因此当与该技术结合使用时,英特尔奔腾处理器至尊版840可通过充分利用以前可能会被闲置的资源,同时处理四个软件线程。

英特尔第一款双核处理器主频为3.2GHz,前端总线频率为800MHz,2M二级高速缓存(每个内核1MB),支持英特尔EM64T(64位扩展技术)。CPU die尺寸约206平方毫米,共集成了2.3亿枚晶体管,采用90nm工艺制造。

最普遍的英特尔双核处理器:

目前市场上最为普遍的当数2005年7月12日发布的奔腾D 820双核处理器,戴尔最廉价服务器促销时2999元的PowerEdge SC430也是采用这款处理器,这也是英特尔第二款双核心处理器。该芯片之前的研发代号为"Smithfield",单一处理器中具有两个奔腾四处理核心。自2004年中开始,Intel上下总动员推广这种在同一硅晶圆内集成两个或两个以上处理器核心的技术。Intel的数字企业部副总裁Stephen Smith表示,使用这种芯片的PC或者服务器可以在同一时间内执行两组指令,这对未来数字家庭和数字办公室中所用的个人电脑来说非常重要,因为过程中需要同时运行例如病毒扫描、视频编辑和流媒体播放等多种任务。

从奔腾D到安腾2 英特尔双核处理器历史
Intel 奔腾D 820 2.8GHz

推出的目的是配合E7230芯片组,抢占入门级服务器市场。

第一款双核至强DP处理器:

2005年10月11日,英特尔公司宣布,将发运其首款面向入门级双路服务器的双核、超线程英特尔至强处理器。这款全新的处理器将可以帮助提高多线程服务器应用的性能并缩短响应时间。

从奔腾D到安腾2 英特尔双核处理器历史
英特尔Paxville至强处理器

这款处理器就是研发代号"Paxville"的至强处理器,这款全新双核至强处理器拥有2.80 GHz的运行速度和800 MHz系统总线,每个内核独享2 MB二级高速缓存。由于每个内核都配置了高速缓存,所以系统总线上的数据量将大为减少,并使每个内核都可以更快地存取数据。此外,它还采用了英特尔64位内存扩展技术、超线程(HT)技术、英特尔病毒防护技术、按需配电等。基于这些处理器的服务器非常适合用于诸如网络服务器、基础设施和电子邮件等应用。

第一款双核至强MP处理器:

2005年11月2日,双内核英特尔至强处理器7000系列(原代号 "Paxville MP")发布,其主频为 3.0 GHz,并带有 667 MHz 双独立系统总线。该全新处理器将适用于采用英特尔 E8500 芯片组的现有平台,此芯片组专为双内核而设计。

这也是第一款硬件支持虚拟化的英特尔处理器。

从奔腾D到安腾2 英特尔双核处理器历史
英特尔至强处理器7000系列

英特尔宣称,随着至强7000系列的发布,在 TPC-C 最新公布的性能指标评测中,采用此全新处理器的四路服务器的性能测试结果2再创新纪录。

注:TPC-C 可模拟整个计算环境,其中一组用户可利用数据库开展交易,并测量服务器可执行的完整业务操作数量。

第一款65nm双核至强处理器:

2006年3月,英特尔低调推出了研发代号为Dempsey的至强5000系列双核处理器,这是英特尔第一款采用65nm工艺制造的至强处理器,除了制造工艺外,与之前的至强处理器相比主要有以下两点不同。

采用1066MHz前端总线,是先进的Bensley平台支持的第一款处理器。这也是由于性能有赖于频率,功耗过高、散热困难的NetBurst架构的终结产品。

从奔腾D到安腾2 英特尔双核处理器历史


英特尔至强5060处理器

从奔腾D到安腾2 英特尔双核处理器历史


英特尔至强5060处理器

尽管采用了最先进的65纳米工艺进行制造,但是顶级的3.73GHz、前端总线1066MHz高性能版本的Dempsey功耗仍高达130W,仅次于采用第一款采用双核的Paxville至强处理器的135W。采用双核心、65nm工艺、每个核心拥有2MB独立二级缓存的Dempsey,基本上可以看做可以双路运行的Presler核心的Pentium D。

第一款酷睿架构的双核至强处理器:

2006年6月27日,英特尔在北京发不了基于酷睿微体系架构的至强5100系列双核处理器。

至强5100系列双核处理器的研发代号是"Woodcrest",是英特尔推出的革命性的"酷睿(Core)"微体系架构的第一款处理器,甚至早于桌面级的"扣肉(Conroe)"。当然,这种"早产"与竞争对手的皓龙处理器不无关系。

由于架构的全面升级,至强5100不再以高频率引领性能,即使是最高等级的至强5180的频率也只有3.0GHz,但是性能却可以让英特尔重新开始当一个领跑者。


英特尔至强5160处理器-工程样板

与至强5000系列相同65nm制造工艺、双独立总线,但是采用了两个可以共享的4MB缓存,以及高达1333MHz的前端总线,当然还有"酷睿"微体系架构的5大法宝:宽位动态执行、智能功率特性 、先进缓存管理、智能内存访问还有高级数字媒体增强 。
英特尔至强5160处理器-工程样板

在英特尔着重强调的能耗比方面,至强5100系列功劳也不少,主流的处理器功耗仅65W,最低的Xeon5100 LV低功耗版仅40W。

第一款双核安腾处理器:

2006年7月26日,之前研发代号为"Montecito"的安腾处理器,以英特尔安腾2处理器9000系列正式命名首发。这是安腾处理器中首个在单一封装Die上面具备可并行执行双线程的内核和缓存级别的处理器。它集成了17.2亿个晶体管和其它服务器相关技术,包括虚拟化支持,耗电量只有100瓦。

从奔腾D到安腾2 英特尔双核处理器历史
英特尔安腾2处理器

根据英特尔提供的数据,安腾2处理器9000系列性能是上一代产品的2倍,同时借助90nm制造工艺,功耗比上一代下降20%,整体性能功耗比达到2.5倍。

英特尔提供的数据还显示,有24MB的三级缓存、533MHz前端总线频率的帮助,在于竞争对手的对比测试中,英特尔安腾2处理器9000系列显示出强大的性能。



chenxu
2008-10-13

免费杀毒软件ClamWin[转]

http://www.freedomblog.cn/antivirus/clamwin093.html

4月 23rd, 2008

ClamWin来自于美国,是一款适用于Windows操作系统的完全免费的杀毒软件。

ClamWin

它体积小,支持自动更新,不会占用太多的计算机资源,扫描速度快效率高,是一款功能强大的杀毒软件。美中不足的是没有推出中文版本以及不支持病毒的实时扫描,必须定期进行扫描。

目前ClamWin的最新版是ClamWin Free Antivirus0.93,杀毒引擎为独立开发的ClamAV杀毒引擎。ClamWin符合自由软件基金会所发表的GNU通用公共授权条款规定,是一款完全免费的开源杀毒软件。

英语水平凑合的可以试试看哦,如果你是C++或者Python开发者,你还可以加入到ClamWin Free Antivirus的开发中。

ClamWin Free Antivirus主页:http://www.clamwin.com/

下载地址:官方下载页面 直接点击下载0.93版




chenxu
2008-10-13

修改远程桌面端口

在终端服务器上做如下修改
KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Terminal Server\Wds\rdpwd\Tds\tcp
和
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
下都有一个PortNumber值,通常为3389,将其修改为自己的值,如9876(可自己指定端口,但最好不要设为低端端口,以免冲突);
  
2.重新启动服务器。   

在客户端做如下改动�   

1. 打开客户端连接管理器;   
2. 输入主机地址,后面跟端口号,例如: 202.100.4.15:9876

 

chenxu
2008-10-13

2008年10月12日星期日

DevCon 命令行实用工具可替代设备管理器

DevCon 命令行实用工具可替代设备管理器
察看本文应用于的产品
文章编号
:
311272
最后修改
:
2007年12月21日
修订
:
5.0
本文的发布号曾为 CHS311272
本页
概要
更多信息
使用 DevCon
DevCon 命令示例
注意
概要
DevCon 实用工具是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 还提供与驱动程序开发人员有关、但无法在设备管理器中看到的信息。可以将 DevCon 用于 Microsoft Windows 2000、Windows XP 和 Windows Server 2003,但不能将其用于 Windows 95、Windows 98 或 Windows Millennium Edition。
回到顶端
更多信息
DevCon 不可再分发。提供它是为了用作调试和开发工具。您可以随意修改 DevCon 以供个人专用。此示例演示了如何有效地同时使用 SetupAPI 和 CfgMgr32 函数来枚举设备和执行设备操作。 可以从 Microsoft 下载中心下载以下文件:立即下载 DevCon 软件包。 (http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe) 发布日期:2003 年 1 月 29 日有关如何下载 Microsoft 支持文件的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
119591 (http://support.microsoft.com/kb/119591/) 如何从联机服务获取 Microsoft 支持文件 Microsoft 已对此文件进行了病毒扫描。Microsoft 使用的是该文件发布时可以获得的最新病毒检测软件。该文件存储在安全性得到增强的服务器上,以防止在未经授权的情况下对其进行更改。 DevCon.exe 文件包含以下文件:
文件
说明
I386\DevCon.exe
32 位 DevCon 工具的二进制文件。此文件在 64 位 Windows 上不能充分发挥作用。
Ia64\DevCon.exe
64 位 DevCon 工具的二进制文件。注意:DevCon 的源代码也可以从 Windows DDK(位于 http://www.microsoft.com/whdc/devtools/ddk/default.mspx (http://www.microsoft.com/whdc/devtools/ddk/default.mspx))中得到,路径是 DDK root\Src\Setup\Devcon,此位置还提供了文档。
回到顶端
使用 DevConDevCon 是一个带有内置文档的命令行实用工具。如果您运行 devcon help 命令,将会出现以下命令列表和描述信息。devcon help 命令可提供关于任何命令的详细帮助。使用其中的某些命令,您可以指定远程目标计算机。如果您在 WOW64 上使用 32 位版的 DevCon,则以下命令有效。设备控制台帮助:
devcon.exe [-r] [-m:\\] [...]
-r 如果指定它,在命令完成后若需要则重新启动计算机。
是目标计算机的名称。
是将要执行的命令(如下所示)。
... 是命令需要的一个或多个参数。
要获取关于某一特定命令的帮助,请键入:devcon.exe help
classfilter 允许修改类别筛选程序。
classes 列出所有设备安装类别。
disable 禁用与指定的硬件或实例 ID 匹配的设备。
driverfiles 列出针对设备安装的驱动程序文件。
drivernodes 列出设备的所有驱动程序节点。
enable 启用与指定的硬件或实例 ID 匹配的设备。
find 查找与指定的硬件或实例 ID 匹配的设备。
findall 查找设备,包括那些未显示的设备。
help 显示此信息。
hwids 列出设备的硬件 ID。
install 手动安装设备。
listclass 列出某一安装类别的所有设备。
reboot 重新启动本地计算机。
remove 删除与特定的硬件或实例 ID 匹配的设备。
rescan 扫描以发现新的硬件。
resources 列出设备的硬件资源。
restart 重新启动与特定的硬件或实例 ID 匹配的设备。
stack 列出预期的设备驱动程序堆栈。
status 列出设备的运行状态。
update 手动更新设备。
UpdateNI 手动更新设备,无用户提示
SetHwID 添加、删除和更改根枚举设备的硬件 ID 的顺序。

DevCon 命令示例devcon -m:\\test find pci\*列出计算机 test 上的所有已知 PCI 设备。(通过使用 -m,您可以指定一个目标计算机。您必须使用“进程间通信”(IPC) 访问此计算机。)devcon -r install %WINDIR%\Inf\Netloop.inf *MSLOOP安装一个新的 Microsoft 环回适配器实例。这将创建一个新的根枚举设备节点,使用此节点您可以安装“虚拟设备”,如环回适配器。如果需要重新启动计算机,此命令还将以安静模式重新启动计算机。devcon classes列出所有已知的安装类别。输出结果包含短的未本地化的名称(例如,“USB”)和描述性名称(例如,“通用串行总线控制器”)。devcon classfilter upper !filter1 !filter2删除这两个指定的筛选程序。devcon classfilter lower !badfilter +goodfilter用“goodfilter”替换“badfilter”。devcon driverfiles =ports列出与 ports 安装类别中的每一个设备关联的文件。devcon disable *MSLOOP禁用硬件 ID 以“MSLOOP”结尾(包括“*MSLOOP”)的所有设备。devcon drivernodes @ROOT\PCI_HAL\PNP0A03列出设备“ROOT\PCI_HAL\PNP0A03”的所有兼容驱动程序。这可以用来确定为什么选择原配的设备信息 (.inf) 文件而不选第三方 .inf 文件。devcon enable '*MSLOOP启用硬件 ID 为“*MSLOOP”的所有设备。单引号指示必须严格按字面解释硬件 ID(换句话说,星号 [“*”] 真的是 一个星号,而不是通配符)。 devcon find *列出本地计算机上存在的所有设备的设备实例。 devcon find pci\*列出本地计算机上所有已知的“外围组件互连”(PCI) 设备(如果一个设备的硬件 ID 以“PCI\”为前缀,此命令就认为该设备是 PCI 设备)。devcon find =ports *pnp*列出存在的作为 ports 安装类别的成员而且硬件 ID 中包含“PNP”的设备。 devcon find =ports @root\*列出存在的作为 ports 安装类别的成员而且在枚举树的“root”分支中的设备(实例 ID 以“root\”为前缀)。请注意,有关实例 ID 的格式化方式,不应作任何编程假定。要确定根设备,可以检查设备状态位。此功能包括在 DevCon 中是为了帮助进行调试。devcon findall =ports列出 ports 类别的“不存在”的设备和存在的设备。这包括已经被删除的设备、从一个插槽移到另一个插槽的设备,以及在某些情况下由于 BIOS 改变而被不同地枚举的设备。devcon listclass usb 1394列出命令中所列的每个类别(本例中是 USB 和 1394)的所有存在的设备。devcon remove @usb\*删除所有 USB 设备。被删除的设备列出时将显示其删除状态。devcon rescan重新扫描以发现新的“即插即用”设备。 devcon resources =ports列出由 ports 安装类别中的所有设备使用的资源。devcon restart =net @'ROOT\*MSLOOP\0000重新启动环回适配器“ROOT\*MSLOOP\0000”。命令中的单引号指示必须按字面解释实例 ID。 devcon hwids=mouse列出系统中鼠标类设备的所有硬件 ID。devcon sethwid @ROOT\LEGACY_BEEP\0000 := beep将硬件 ID beep 赋予旧式蜂鸣设备。devcon stack =ports列出设备预期的驱动程序堆栈。包括设备和类别高层/低层筛选程序,以及控制服务。devcon status @pci\*列出实例 ID 以“pci\”开头的每一个存在设备的状态。devcon status @ACPI\PNP0501\1列出特定设备实例的状态,在本例中是一个高级配置和电源界面 (ACPI) - 枚举的串行端口。devcon status @root\rdp_mou\0000列出 Microsoft 终端服务器或终端服务鼠标驱动程序的状态。devcon status *PNP05*列出所有 COM 端口的状态。 devcon update mydev.inf *pnp0501更新与硬件 ID *pnp0501 严格匹配的所有设备,让它们使用 Mydev.inf 中与硬件 ID *pnp0501 关联的最好的驱动程序。注意:即使系统上已经存在更好的匹配项,这一更新也将强制所有设备使用 Mydev.inf 中的驱动程序。如果在获得签名之前,您想要在开发过程中安装驱动程序的新版本,则这是很有用的。此更新仅影响与指定的硬件 ID 匹配的设备,不会影响到其子设备。如果指定的 .inf 文件未经签名,则 Windows 可能会显示一个对话框,提示您确认是否应安装此驱动程序。如果需要重新启动计算机,将报告这一情况并且 DevCon 返回一个级别 1 错误。如果指定 -r,在需要重新启动计算机时就会自动重启。
注意
•
DevCon 将返回一个在脚本中使用的错误级别:
“0”指示成功。“1”指示需要重新启动。“2”指示失败。“3”指示语法错误。
•
如果您指定 -r 并且需要重新启动,则在处理完所有设备后,将在无任何警告信息的情况下重新启动。
•
如果您指定 -m:\\computer 并且命令对远程计算机不起作用,将报告一个错误。
•
为便于交互,DevCon 允许在实例 ID 中使用通配符。不要根据一台计算机或一种操作系统版本去推测有关另一台计算机或另一种操作系统版本的实例 ID 格式的任何信息。
回到顶端

这篇文章中的信息适用于:
•
适用于 Windows 2000 的 Microsoft Win32 设备驱动程序工具包
•
Microsoft Windows XP 驱动程序开发工具包
•
Microsoft Windows Server 2003 Driver Development Kit

2008年10月9日星期四

Linux关机命令详解

本文出自:LinuxAid.com.cn 作者: sword_martin (2002-01-30 21:03:06)
    在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都
可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希
望你可以更加灵活的运用各种关机命令。
   1.shutdown
   shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,
这是十分危险的。因为linux与windows不同,其后台运行着许多进程,所以强制关机可能
会导致进程的数据丢失�使系统处于不稳定的状态�甚至在有的系统中会损坏硬件设备。
    而在系统关机前使用shutdown命令�系统管理员会通知所有登录的用户系统将要关闭。
并且login指令会被冻结�即新的用户不能再登录。直接关机或者延迟一定的时间才关机
都是可能的�还可能重启。这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕
决定的。这让像vi之类的程序有时间储存目前正在编辑的文档�而像处理邮件〔mail〕和
新闻〔news〕的程序则可以正常地离开等等。
    shutdown执行它的工作是送信号〔signal〕给init程序�要求它改变runlevel。
Runlevel 0被用来停机〔halt〕�runlevel 6是用来重新激活〔reboot〕系统�
而runlevel 1则是被用来让系统进入管理工作可以进行的状态�这是预设的�假定没有-h也
没有-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些
动作�你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
   shutdown 参数说明:
   [-t] 在改变到其它runlevel之前�告诉init多久以后关机。
   [-r] 重启计算器。
   [-k] 并不真正关机�只是送警告信号给每位登录者〔login〕。
   [-h] 关机后关闭电源〔halt〕。
   [-n] 不用init�而是自己来关机。不鼓励使用这个选项�而且该选项所产生的后果往
往不总是你所预期得到的。
   [-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有
时间参数�但是可以输入一个用来解释的讯息�而这信息将会送到每位使用者。
   [-f] 在重启计算器〔reboot〕时忽略fsck。 
     [-F] 在重启计算器〔reboot〕时强迫fsck。
   [-time] 设定关机〔shutdown〕前的时间。
     
2.halt----最简单的关机命令
   其实halt就是调用shutdown -h。halt执行时�杀死应用进程�执行sync系统调用�
文件系统写操作完成后就会停止内核。
   参数说明:
   [-n] 防止sync系统调用�它用在用fsck修补根分区之后�以阻止内核用老版本的超
级块〔superblock〕覆盖修补过的超级块。
   [-w] 并不是真正的重启或关机�只是写wtmp〔/var/log/wtmp〕纪录。
   [-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
   [-f] 没有调用shutdown而强制关机或重启。
   [-i] 关机〔或重启〕前�关掉所有的网络接口。
   [-p] 该选项为缺省选项。就是关机时调用poweroff。
   
3.reboot
    reboot的工作过程差不多跟halt一样�不过它是引发主机重启�而halt是关机。它
    的参数与halt相差不多。
4.init
   init是所有进程的祖先�它的进程号始终为1�所以发送TERM信号给init会终止所有的
   用户进程�守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),
   init 0为关机�init 1为重启。关于init可以长篇大论�这里就不再叙述。另外还有
   telinit命令可以改变init的运行级别�比如�telinit -iS可使系统进入单用户模式�
   并且得不到使用shutdown时的信息和等待时间。 

v
 

chenxu
2008-10-09

随笔 2008-10-09

鱼找鱼,
虾找虾,
乌龟蛋找王八蛋。
 

chenxu
2008-10-09

mantis1.1.2使用

1,mantis1.1.2 和1.0的版本很大区别 连接数据库的api设置了字符类型 默认是utf8 中文也默认是utf8 如果需要改字符集就要到 core目录下设置 database_api.php 里面的字符集类型 还有lang下的语言文件

2,设置图形报表的的真实姓名显示需要修改graph_api.php 文件内 把username 替换为realname 就ok了,
关于图形报表设置请看 http://lslcxlsl.blogcn.com/diary,20099014.shtml


图表的中文乱码问题 congfig中 设置$g_graph_font = 'chinese_gbk';


chenxu
2008-10-09

【转】完美转换MySQL的字符集 Mysql 数据的导入导出,Mysql 4.1导入到4.0

【转】完美转换MySQL的字符集 Mysql 数据的导入导出,Mysql 4.1导入到4.0开心 

完美转换MySQL的字符集  Mysql 数据的导入导出,Mysql 4.1导入到4.0

   MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级、降级,特别是升级MySQL的版本,为了不让程序继续沿用Latin1字符集之后对以后Discuz!版本升级的影响和安装SupeSite,这就需要我们进行字符集的转换!
   本人转换过好多数据了,也用过了好多的办法,个人感觉最好用的就是使用MySQL命令导出导入中将字符集转换过去!
   现在我将用图文并茂的方式向大家展示一下如何将MySQL字符集进行转换,由于字符集比较多,现在主要举GBK和Latin1这两种字符集之间的转换!
   首先我将讲解一下如何将MySQL从GBK转换为Latin1的(如果是UTF8或者BIG5转换即将GBK换成相应的字符集即可)!这种问题常发生在MySQL从MySQL4.1及其以上版本转换为MySQL4.1以下的版本的过程中!有的人图个方便,特别是有主机权限的,直接将MySQL的data目录下的文件拷贝过去了,这样造成的问题就是乱码问题!当然我所说的这些都要求你必须拥有主机权限,虚拟主机用户可以在本地搭建好论坛,下载数据到你的本地,然后把数据导入到你本地的数据库,然后进行字符集的转换!



   现在的步骤就是将MySQL的数据导出了,在mysql的命令提示符下(linux系统为mysql的命令目录下),输入下面导出的命令:
   mysqldump -uroot -p --default-character-set=gbk --set-charset=latin1 --compatible=mysql40 --skip-opt discuz>discuz.sql
  如图1(windows下)和图2(linux下)所示

图1:
点击在新窗口中浏览此图片


图2:
点击在新窗口中浏览此图片


   这样就轻松的将数据从MySQL数据库中导出了,此时导出的文件在与mysql命令同级的目录下,即bin目录下,而且已经将MySQL字符集导出为Latin1的了!现在要做的就是将数据导入MySQL4.0中去!
   同样在4.0版本的mysql命令提示符下(linux系统为mysql的命令目录下),输入下面导入命令:
   mysql -uroot -p --default-character-set=latin1 -f discuz<discuz.sql
   如图3(window下)和图4(linux下)所示

图3:
点击在新窗口中浏览此图片


图4:
点击在新窗口中浏览此图片

   这样就将字符集从GBK转为Latin1同时将MySQL从4.1以上版本的转为MySQL4.0的了!
 (以下是主要的,设置的gb2312也可以)
   现在讲解一下如何从Latin1字符集转换为GBK的!
   由于只有MySQL4.1以上的版本才有字符集的概念,所以如果你要将MySQL4.0的字符集从Latin1转换为GBK字符集的话,必须导入到MySQL4.1以上的版本中,然后再导出!这里面就多了一个导出为Latin1的步骤!
   同样在MySQL4.0的命令提示符下,输入下面导出的命令:
   mysqldump -uroot -p --default-character-set=latin1 --set-charset=latin1 --skip-opt discuz>discuz.sql
   然后导入到MySQL4.1中,输入下面导入的命令:
   mysql -uroot -p --default-character-set=latin1 -f discuz<discuz.sql
   然后在MySQL4.1下转换字符集,分别输入下面导出和导入的命令:
   mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt discuz>discuz.sql
   mysql -uroot -p --default-character-set=gbk -f newdiscuz<discuz.sql
   如果不出问题的话,那么转换就完毕了!其实整个过程还是比较简单的,只是过程看起来比较麻烦些,但是过程却是很简单明了的!
   下面举出一个在导入过程中极易容易出现的问题!
   在导入的时候容易出现unknown command '/'这样的错误,其实这是由于MySQL在导出的时候,它有时候给一些繁体字后面自动加上了个反斜杠造成的!解决此问题的办法就是打开备份的sql(这里为discuz.sql),提示错误的时候会提示具体哪行出现了错误,找到那行,把反斜杠去掉就行了!其实你可以用Ultraedit这些文本处理的工具,批量的去处理这些反斜杠

!凭个人经验,有很多用户名取的比较怪,这样就容易出现反斜杠,这样只要纠正那些用户名就行了!
   以上是个人在转换数据过程中的一些经验之谈,很多地方还有待大家完善!
 

chenxu
2008-10-09

查看本机端口命令

netstat -a
netstat -an

chenxu
2008-10-09