标签归档:Linux

Ext3与Ext4的主要区别

Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4。 Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已。Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能:

1. 与 Ext3 兼容。 执行若干条命令,就能从 Ext3 在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统。原有 Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了 Ext4 所支持的更大容量。

2. 更大的文件系统和更大的文件。 较之 Ext3 目前所支持的最大 16TB 文件系统和最大 2TB 文件,Ext4 分别支持 1EB(1,048,576TB, 1EB=1024PB, 1PB=1024TB)的文件系统,以及 16TB 的文件。

3. 无限数量的子目录。 Ext3 目前只支持 32,000 个子目录,而 Ext4 支持无限数量的子目录。

4. Extents。 Ext3 采用间接块映射,当操作大文件时,效率极其低下。比如一个 100MB 大小的文件,在 Ext3 中要建立 25,600 个数据块(每个数据块大小为 4KB)的映射表。而 Ext4 引入了现代文件系统中流行的 extents 概念,每个 extent 为一组连续的数据块,上述文件则表示为“该文件数据保存在接下来的 25,600 个数据块中”,提高了不少效率。

5. 多块分配。 当 写入数据到 Ext3 文件系统中时,Ext3 的数据块分配器每次只能分配一个 4KB 的块,写一个 100MB 文件就要调用 25,600 次数据块分配器,而 Ext4 的多块分配器“multiblock allocator”(mballoc) 支持一次调用分配多个数据块。

6. 延迟分配。 Ext3 的数据块分配策略是尽快分配,而 Ext4 和其它现代文件操作系统的策略是尽可能地延迟分配,直到文件在 cache 中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。

7. 快速 fsck。 以前执行 fsck 第一步就会很慢,因为它要检查所有的 inode,现在 Ext4 给每个组的 inode 表中都添加了一份未使用 inode 的列表,今后 fsck Ext4 文件系统就可以跳过它们而只去检查那些在用的 inode 了。

8. 日志校验。 日志是最常用的部分,也极易导致磁盘硬件故障,而从损坏的日志中恢复数据会导致更多的数据损坏。Ext4 的日志校验功能可以很方便地判断日志数据是否损坏,而且它将 Ext3 的两阶段日志机制合并成一个阶段,在增加安全性的同时提高了性能。

9. “无日志”(No Journaling)模式。 日志总归有一些开销,Ext4 允许关闭日志,以便某些有特殊需求的用户可以借此提升性能。

10. 在线碎片整理。 尽管延迟分配、多块分配和 extents 能有效减少文件系统碎片,但碎片还是不可避免会产生。Ext4 支持在线碎片整理,并将提供 e4defrag 工具进行个别文件或整个文件系统的碎片整理。

11. inode 相关特性。 Ext4 支持更大的 inode,较之 Ext3 默认的 inode 大小 128 字节,Ext4 为了在 inode 中容纳更多的扩展属性(如纳秒时间戳或 inode 版本),默认 inode 大小为 256 字节。Ext4 还支持快速扩展属性(fast extended attributes)和 inode 保留(inodes reservation)。

12. 持久预分配(Persistent preallocation)。 P2P 软件为了保证下载文件有足够的空间存放,常常会预先创建一个与所下载文件大小相同的空文件,以免未来的数小时或数天之内磁盘空间不足导致下载失败。 Ext4 在文件系统层面实现了持久预分配并提供相应的 API(libc 中的 posix_fallocate()),比应用软件自己实现更有效率。

13. 默认启用 barrier。 磁 盘上配有内部缓存,以便重新调整批量数据的写操作顺序,优化写入性能,因此文件系统必须在日志数据写入磁盘之后才能写 commit 记录,若 commit 记录写入在先,而日志有可能损坏,那么就会影响数据完整性。Ext4 默认启用 barrier,只有当 barrier 之前的数据全部写入磁盘,才能写 barrier 之后的数据。(可通过 "mount -o barrier=0" 命令禁用该特性。)

Linux终于搞定Windows 8的UEFI安全启动

所有的Windows 8硬件设备都将默认采用UEFI(统一可扩展固件接口)的安全启动(Secure Boot),防止未经授权的引导装载程序(OS Loader)在BIOS中启动,UEFI只启动通过认证的引导装载程序,而恶意软件则无法再利用这种方法攻击用户。

当微软在2011年宣布这一消息的时候,立即引起了Linux社区的不满,尽管微软表示这并不会将其它操作系统关在门外(通过设置PC固件可以控制任何操作系统执行安全启动,而并非只是Windows系统),自由软件基金会(Free Software Foundation,FSF)还曾呼吁大家抵制微软的这一举措,认为这意味着获得微软认证的计算机无法启动未授权操作系统,“安全启动”应该称为“受限启动”。

Fedora、红帽(Red Hat)都找到了应对办法,与微软签订协议,通过电子签名来提供他们自己的Windows 8系统兼容UEFI安全启动键。难道这就是所有Linux厂商的命运?

本周,Linux基金会终于找到了解决办法,可以让Linux发行版在采用UEFI安全启动的PC上顺利安装运行,就像Windows 8一样。Linux基金会在官方网站上描述道:“在nutshell中,Linux基金会将获取一个微软密钥并签署一个小的预引导装载程序(pre-bootloader),然后链式加载(无需任何形式的签名许可)一个预先指示的引导装载程序,从而启动Linux(或其它操作系统)。这种预引导装载程序能够采用一种‘当前用户’测试来确保它不会用来引导恶意程序。这种预引导装载程序可以被用在CD/DVD安装或LiveCD发行版本中,甚至能够用来在安全模式下启动任一款预装操作系统。”

这种预引导装载程序的源代码当前已经可以下载,不过Linux基金会表示:“获取微软签名的流程还要花费一段时间,一旦完成,Linux基金会将在官网上放出这个预引导装载程序,届时所有人都可以下载并使用它。”

Linux终于搞定Windows 8的UEFI安全启动

Linux_Ext分区超级块结构

Linux系统安装VMware Tools的步骤

  1.以ROOT身份进入LINUX
  2.退出到windows,点击 SETTING菜单下的ENABLE VMWARE TOOLS子菜单,确认安装
  3.把光驱改为使用iso镜像,路径为C:Program FilesVMwareVMware WorkstationProgramslinux.iso
  4.进入linux运行mount -t iso9660 /dev/cdrom /mnt
  加载CDROM设备,这时如果进入 /mnt 目录下,你将会发现多了一个文件:vmware-linux-tools.tar.gz。这就是WMWARE TOOLS的LINUX软件包,也就是我们刚才使用WINISO打开LINUX.ISO文件所看到的。
  cp /mnt/vmware-linux-tools.tar.gz /tmp
  将该软件包拷贝到LINUX的 TMP目录下。
  umount /dev/cdrom
  卸载CDROM。
  cd /tmp
  进入TMP目录
  tar zxf vmware-linux-tools.tar.gz
  解压缩该软件包,默认解压到vmware-linux-tools目录下(与文件名同名)。
  cd vmware-linux-tools
  进入解压后的目录
  ./install.pl 运行安装命令。
  这时install提示你是否需要备份以前的配置文件,建议选择"y"。

Linux fdisk命令使用方法

     一块硬盘只能有四个主分区(hda1,had2,hda3,hda4)

     一个主分区可以转换为一个扩展分区。在扩展分区上,可以以链表的方式建立逻辑分区

    Linux下逻辑分区自hda5编号,hda1、hda2、hda3、hda4预留为四个主分区

     查看硬盘分区信息 fdisk -l

一、创建分区

 

   fdisk /dev/sda

Command (m for help): 
   a toggle a bootable flag
   b edit bsd disklabel
   c toggle the dos compatibility flag
   d delete a partition ;删除一个分区
   l list known partition types;
列出分区类型

m print this menu ;列出帮助信息;
   n add a new partition ;添加一个分区;包括两个选项

  输入e 硬盘为扩展分割区(extend)。

  输入p 硬盘为主分割区(primary)。 
   o create a new empty DOS partition table
   p print the partition table ;列出分区表;
   q quit without saving changes ;不保存退出;
   s create a new empty Sun disklabel
   t change a partition's system id ;改变分区类型;
   u change display/entry units
   v verify the partition table
   w write table to disk and exit ;把分区表写入硬盘并退出;
   x extra functionality (experts only) ;扩展应用,专家功能;

用fdisk更改分区表后,使更改的分区表立即生效,需要运行partprobe命令。

 

二、格式化

 

mkfs.分区类型 命令来格式化分区,比如我想格式化 sda3为ext3文件系统,则mkfs.ext3 /dev/sda3

 

三、加载文件系统

 

加载 sda3到目前系统来存取文件

mkdir /mnt/sda3

mount /dev/sda3 /mnt/sda3