分类目录归档:技术文献

Big_Endian和Little_Endian的说明

    谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用Big_Endian方式存储数据,而x86系列则采用Little_Endian方式存储数据。那么究竟什么是Big_Endian,什么又是Little_Endian呢?

    其实Big_Endian是指低地址存放最高有效字节(MSB),而Little_Endian则是低地址存放最低有效字节(LSB)。

    用文字说明可能比较抽象,下面用图像加以说明。比如数字0x12345678在两种不同字节序CPU中的存储顺序如下所示:

Big_Endian

  低地址                                             高地址

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

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  |      12      |       34     |      56       |      78     |

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Little_Endian

  低地址                                             高地址

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

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  |      78      |       56     |      34       |      12     |

  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    从上面两图可以看出,采用Big_Endian方式存储数据是符合我们人类的思维习惯的。

Linux -- parted 分区工具使用

从串行技术出现以来,越来越多客户选择使用大容量的SATA硬盘创建磁盘阵列;特别是MD1000/MD3000,很轻易就突破2T的LUN,故在此给大家一些指引。
红帽企业 Linux 4 Update 4供对大于 2 terabytes(TB)的磁盘设备的支持。

请参考以下操作步骤: 
注: 
蓝色代表你需要使用的命令 
红色代表你需要注意到的输出信息,在后续需要使用 

[root@as4 ~]# fdisk -l
Disk /dev/sda: 35.8 GB, 35862976512 bytes 
255 heads, 63 sectors/track, 4360 cylinders 
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System 
/dev/sda1   *           1          13      104391   83  Linux 
/dev/sda2              14         144     1052257+  82  Linux swap 
/dev/sda3             145        4360    33865020   83  Linux
Disk /dev/sdb: 2147 MB, 2147483648 bytes 
255 heads, 63 sectors/track, 261 cylinders 
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table 
[root@as4 ~]# parted /dev/sdb 
GNU Parted 1.6.19 
Copyright (C) 1998 - 2004 Free Software Foundation, Inc. 
This program is free software, covered by the GNU General Public License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY 
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE.  See the GNU General Public License for more details.
使用 /dev/sdb 
(parted) mklabel gpt 
(parted) print 
/dev/sdb 的磁盘几何结构:0.000-2048.000 兆字节 
磁盘标签类型:gpt 
Minor    起始点        终止点  文件系统    名称                  标志 
(parted) mkpart primary 0 2048 
(parted) print 
/dev/sdb 的磁盘几何结构:0.000-2048.000 兆字节 
磁盘标签类型:gpt 
Minor    起始点        终止点  文件系统    名称                  标志 
1          0.017   2047.983 
(parted) quit 
信息: 如果必要,不要忘记更新 /etc/fstab。
[root@as4 ~]# fdisk -l
Disk /dev/sda: 35.8 GB, 35862976512 bytes 
255 heads, 63 sectors/track, 4360 cylinders 
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System 
/dev/sda1   *           1          13      104391   83  Linux 
/dev/sda2              14         144     1052257+  82  Linux swap 
/dev/sda3             145        4360    33865020   83  Linux
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
 
Disk /dev/sdb: 2147 MB, 2147483648 bytes 
255 heads, 63 sectors/track, 261 cylinders 
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System 
/dev/sdb1               1         262     2097151+  ee  EFI GPT 
Partition 1 has different physical/logical beginnings (non-Linux?): 
     phys=(0, 0, 1) logical=(0, 0, 2) 
Partition 1 has different physical/logical endings: 
     phys=(1023, 254, 63) logical=(261, 21, 16) 
[root@as4 ~]# mkfs.ext3 /dev/sdb1 
mke2fs 1.35 (28-Feb-2004) 
Filesystem label= 
OS type: Linux 
Block size=4096 (log=2) 
Fragment size=4096 (log=2) 
262144 inodes, 524279 blocks 
26213 blocks (5.00%) reserved for the super user 
First data block=0 
Maximum filesystem blocks=536870912 
16 block groups 
32768 blocks per group, 32768 fragments per group 
16384 inodes per group 
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912
Writing inode tables: done 
Creating journal (8192 blocks): done 
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 28 mounts or 
180 days, whichever comes first.  Use tune2fs -c or -i to override. 
[root@as4 ~]# mount /dev/sdb1 /mnt 
[root@as4 ~]# df -h 
Filesystem            容量  已用 可用 已用% 挂载点 
/dev/sda3              32G  2.6G   28G   9% / 
/dev/sda1              99M   12M   82M  13% /boot 
none                  252M     0  252M   0% /dev/shm 
/dev/sdb1             2.0G   36M  1.9G   2% /mnt

Fedora11无法从root账户登录解决方法

    继fedora10之后fedora11仍然不让root用户登陆GUI,照着fedora 10的方法做过之后仍然不行。
 
    其实解决方法还是差不多的:
 
    为了用root登入,就先用普通用户登陆,打开系统工具-终端
    输入命令:su -
    输入root密码(此时密码不显示,直接输入)
    输入命令:gedit /etc/pam.d/gdm&
    在文本编辑器中注释掉"auth required pam_succeed_if.so user != root quiet"这一行(在这一行前面加上"#",即改成#auth required pam_succeed_if.so user != root quiet)
    保存后继续输入命令:gedit /etc/pam.d/gdm-password&
    同样地注释掉"auth required pam_succeed_if.so user != root quiet"这一行。
 
    保存后退出
    现在就能使用root登录了

 

    解决Fedora 17 root不能登录的问题
    #vim /etc/pam.d/gdm-password
    #auth required pam_succeed_if.so user != root quiet
    注释掉此行,:wq保存并退出。重启,就可以用root直接登录了。

LVM的建立与管理

        LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。

一.LVM卷的建立

 1.为了在红帽企业版系统上初始化LVM,必须执行命令vgscan
来查找是否有卷组和物理卷。
 2.fdisk /dev/sde   ( 建立一个标识符为“8e”的分区)
   fdisk /dev/sdd   (同上)
 3.建立物理卷,可以同时写多个
 pvcreate /dev/sde1 /dev/sdf1 
 4.建立卷组(注:卷组未格式)
 vgcreate VG1 /dev/sde1 dev/sdf1
 5.建立逻辑卷
 lvcreate -n LV1 -L 150 VG1 (-n是对逻辑卷命名,-L是对
逻辑卷设置空间大小,默认单位是"M")
 6.格式化:
 mke2fs -j /dev/VG1/LV1
 mkdir /www   (在根目录下新建一个目录)
 mount /dev/VG1/LV1 /www
二.卸载卷
 1.卸载逻辑卷
  lvremove /dev/VG1/LV1
 2.卸载卷组
  vgremove /VG1
 3.卸载物理卷
  pvremove /dev/sde1
  pvremove /dev/sdd1
三.查看管信息
 1.pvdisplay /dev/sde1
 2.vgdisplay VG1
 3.lvdisplay /dev/VG1/LV1
 4.vgdisplay -v VG1  (可以显示物理卷,卷组,逻辑卷的所
有信息)
四.调整卷组
 1.fdisk /dev/sdg ( 建立一个标识符为“8e”的分区)
 2.pvcreate /dev/sdg1
 3.vgextend VG1 /dev/sdg1 (将/dev/sdg1添加到VG1)
 注:这里调整是无法调整物理卷的大小的。
 4.vgreduce VG1 /dev/sdg1 (将/dev/sdg1添加到VG1)
 注:在缩小之前先查一下物理卷是否被使用,通过pvdisplay
来查。缩小物理卷,必须是缩小没有使用的物理卷的。
五.产生逻辑卷快照
 lvcreate -L 200M -s -n LV1kuaizhao /dev/VG1/LV1
 (-L是添加快照的大小,若大小比实际的小,则会自动增加到
实际空间的大小。-s 快照的意思 -n 给快照命名 /dev/VG1/LV1给哪
个逻辑卷快照)
 lvremove /dev/VG1/LV1  (卸载前必须先解除挂载)
 注:快照出来的内容可以挂载,修改,删除,添加内容等操
作。若想读取快照,只需挂载便可读取。
六.移动卷
 1.加入新的物理卷到卷组中
  fdisk /dev/sdh ( 建立一个标识符为“8e”的分区)
  pvcreate /dev/sdh1
  vgextend VG1 /dev/sdh1
  pvscan (查看卷组的状况)
 2.移动物理卷的数据,到新加入的物理卷上
  pvmove /dev/sde1 /dev/sdh1 (将sde1的数据移动到sdh1里
)
 3.将旧的物理卷从卷组中卸载
   vgreduce VG1 /dev/sde1
七.迁移至其它系统
 1.在原先的计算机中,导出卷组
  vgchange -a n VG1
  vgexport VG1
 2.将LVM的磁盘,安装到目的计算机中
 3.在目的计算机中,输入卷组

  pvscan
  vgimport VG1
  vgchang -a y VG1
  接下来就可以挂载了mount /dev/VG1/LV1 /web
八.调整逻辑卷
  1.增大逻辑卷
   必须先增大LV,再增大文件系统
   lvextend -L +100M /dev/VG1/LV1
   e2fsck -f /dev/VG1/LV1(检测文件系统的完整性)
   resize2fs /dev/VG1/LV1 
   注:在做lv增大的操作的时候,要求必须是没有挂载的文
件系统,也就是要先解除挂载。
   2.缩小逻辑卷

    先缩小文件系统,再缩小LV
    e2fsck -f /dev/VG1/LV1
    resize2fs /dev/VG1/LV1 212M (缩小后的空间数)
    lvreduce -L -40M /dev/VG1/LV1
    注:在做lv缩小的操作的时候,要求必须是没有挂载的文
件系统,也就是要先解除挂载。

如何使用WinHex脚本自动修复NTFS文件系统DBR

        DBR(DOS BOOT RECORD,DOS引导记录),位于柱面0,磁头1,扇区1,即逻辑扇区0。DBR分为两部分:DOS引导程序和BPB(BIOS参数块)。其中DOS引导程序完成DOS系统文件(IO.SYS,MSDOS.SYS)的定位与装载,而BPB用来描述本DOS分区的磁盘信息,BPB位于DBR偏移0BH处,共13字节。 它包含逻辑格式化时使用的参数,可供DOS计算磁盘上的文件分配表,目录区和数据区的起始地址,BPB之后三个字提供物理格式化(低格)时采用的一些参数。引导程序或设备驱动程序根据这些信息将磁盘逻辑地址(DOS扇区号)转换成物理地址(绝对扇区号)。

 

Assign Mouse CurrentPos
Assign ParSize GetSize
Assign SecSize 512
Goto 0x000
Write 0xEB52904E54465320202020
Write SecSize
Write 0x00
Write 0x0000
Write 0x000000
Write 0x0000
Write 0xF8
Write 0x0000
Write 0x3F00
Write 0xFF00
Write 0x00000000
Write 0x00000000
Write 0x80008000
Write 0x0000000000000000
Write 0x0000000000000000
Write 0x0000000000000000
Write 0xF6
Write 0x000000
Write 0x01
Write 0x000000a
Write 0x1C5B596481596420
Write 0x0000
{
Write 0x00
}[428]
Write 0x55AA

//Goto Mouse //移动到光标点击位置,提高搜索效率。
Goto 0x200 //从头扫描。
Find 0x100000006000000000001800000000004800000018000000 Down
IfFound
Move -56
Assign MFT CurrentPos
Move 272
Read QSVCN 8
Read JSVCN 8
Move 8
Read FileSize 8
EndIF
Goto 0x00D
Write ((FileSize/(JSVCN-QSVCN+1))/SecSize)
Goto 0x00D
Read CDX 1
Goto 0x030
Write (MFT/SecSize/CDX)
Goto (MFT+1354)
Read MFTMirr 6
Goto 0x038
Write MFTMirr
Goto 0x028
Write ((ParSize/SecSize)-1)
MessageBox "DBR修复完成!"