Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303856
  • 博文数量: 58
  • 博客积分: 2763
  • 博客等级: 少校
  • 技术积分: 731
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-04 19:07
文章分类

全部博文(58)

文章存档

2011年(55)

2009年(1)

2008年(2)

分类: LINUX

2011-07-30 14:11:37

今天我来讲讲硬盘分区以及磁盘使用的有关知识。
首先,你得知道磁盘的组成:
*圆形的盘片(主要记录数据的部分)
*机械手臂与机械手臂上的磁头(可读写盘片上的数据)
*主轴马达,可以转动盘片,让机械手臂的磁头在盘片上读写数据。
盘片上面又可分为扇区与柱面两种单位,扇区为最小的物理存储单位,每个扇区为512bytes;将扇区组成一个圆,那就是柱面,柱面是分区的最小单位;第一个扇区最为重要,里面有硬盘主引导记录(MBR)及分区表,其中MBR占有446bytes,而分区表占64bytes,每个分区16bytes。因此最多只能记录四条分区的记录,这四条记录我们成为主分区或扩展分区,其中扩展分区还可以再分出逻辑分区,而能被格式化的则仅有主分区和逻辑分区。
硬盘接口有IDE:并行设备
   SATA:串行设备
   SCSI:并行设备
以IDE接口来说,由于一个IDE扁平电缆可以连接两个IDE设备,通常主机又都会提供两个IDE接口,因此最多可以接到四个IDE设备。这两个IDE接口通常被称为IDE1(primary)及IDE2(secondary),而每条扁平电缆上面的IDE设备可以被区分为Master(主设备)与Slave(从设备)。
 IDE                      主设备                  从设备
IDE (primary)          /dev/hda                /dev/hdb
IDE (secondary)        /dev/hdc                /dev/hdd
对于SATA来说,由于SATA/USB/SCSI等磁盘接口都是使用SCSI模块来驱动的,因此这些接口的磁盘设备文件名都是/dev/sd[a-p]的格式,但是与IDE接口不同的是,SATA/USB接口的磁盘根本就没有一定的顺序,它们是根据linux内核检测到磁盘的顺序。所有的设备文件都是开机时候动态创建的。
光盘所对应的设备文件名:/dev/cdrom或/dev/dvd
软盘所对应的设备文件名:/dev/floppy
linux的文件系统类型:ext2,ext3,ext4,xfs,jfs,reiserfs,iso9660,swap等,linux文件系统通常会将文件的权限与属性放置到Inode中,将实际数据放置到数据块中。另外,还有一个超级块会记录整个文件系统的整体信息,包括inode与block的总量、使用量、剩余量等。每个inode与block都有编号。而每个文件都会占用一个inode,inode内则有文件数据放置的block号码。若文件太大,会占用多个block。
VFS:虚拟文件系统,整个linux认识的文件系统其实都是VFS在进行管理,我们用户并不需要知道每个分区上头的文件系统是什么,VFS会主动帮我们做好读取的操作。VFS就是用户与文件系统的中间层。
磁盘的使用必须经过分区,格式化,挂载三个步骤。格式化其实就是创建文件系统的过程。文件系统要能够连接到目录树才能被我们使用。将文件与目录树关联的过程,就称为挂载。挂载点一定是目录,是进入该文件系统的入口。因此,并不是你有任何文件系统都能使用,必须要挂载到目录树的某个目录后,才能够使用该文件系统的。
 
分区命令:fdisk
fdisk -l 查看分区信息
      例如:fdisk -l /dev/sda
fdisk /dev/sda 进入交互式界面,创建分区最多只支持15个分区。
 d 删除分区
 n 添加分区
 p 打印分区信息
 t 调整分区类型
 w 保存
 q 不保存退出
分区类型要和格式化类型一致
如果你的分区就只有一个主分区,那你还可以建立3个主分区,但是如果你想分更多的分区出来,那你就要建立一个扩展分区了,而且扩展分区的大小是你余下的所有空间的大小。否则,剩余的空间就会浪费。
你若想要修改分区的类型,就是用-t,如果你不知道分区类型要改为多少,那你选择完要修改的分区后,按L则会列出所有的类型和所对应的编号。
83 linux
82 linux swap
8e linux LVM
5  Extended
当你的分区修改完成后使用partprobe /dev/sda让内核重读磁盘分区表。

格式化;
 
mkfs (创建文件系统)
    -t  创建文件系统
    -c  创建之前先检查是否有错误
命令简写:mkfs –t ext2=mkfs.ext2
mke2fs 格式化命令
    -b 数据块大小(1024|2048|4096)
    -c 先检查磁盘
    -j 日志,格式化ext3,否则,默认为ext2
    -L 指定磁盘卷标的,LABEL
    -i 根据比例创建多少个inode,10G/128bit
    -N 创建多少个inode。
    -m 指定分区上给管理员的空间大小,默认整个空间的5%

fsck 检查修复文件系统
   -t 指定文件系统类型
   -a 自动修复
tune2fs
    -j 将文件系统类型升级为ext3
    -L 修改卷标
    -l 显示系统超级块信息
    -m 修改给管理员的预留空间
    -c 挂载多少次开始自检。0,-1表示关闭自检
    -i 多少天开始自检。0,-1关闭自检
    -o 设定分区的默认挂载选项。例如:tune2fs -o acl 设备名 
blkid 查看一个块设备的编号和文件系统
dumpe2fs 显示一个块设备的编号和文件系统
e2label 改卷标
     e2label 设备名; 查看卷标
     e2label 设备名 卷标;添加卷标
 
挂载:
mount [–t fstype] [options] 挂载设备 挂载点
  -t ext2,iso9660
  -r 只读方式挂载
  -w 写方式
  -a 自动挂载    系统启动过程自动挂载文件系统的配置文件;/etc/fstab
                 实时保存当前系统挂载的设备:/etc/mtab
  -o 指定挂载设备时,使用的挂载选项
    挂载选项: async 异步写入,可以先在内核缓存,然后再写入磁盘
               noatime 不更新访问时间
               exec  允许执行二进制文件
               noexec 不允许执行二进制文件
mount –o ro 设备名 挂载点  ,将设备挂载为只读的
mount –o remount,rw 设备名 ,重新挂载,并且挂载为读写类型
/etc/fstab里有六个字段:
1.要挂载的设备:可以是设备名/dev/sda5,可以是卷标LABEL=MYDATA,还可以是,UUID
2.挂载点
3.文件系统类型
4.挂载选项,如果有多个选项,选项间要用逗号隔开;dafaults,acl(启用访问控制列表)
5.转储频率(备份)0,不作任何备份。1,每天备份。2,每两天备份
6.文件系统的自检次序;0-9。0表示不自检。1表示开机自检。越往后级别越来越低。
umount 设备名或挂载点 ,卸载设备
当你退出了挂载点,卸载设备的时候,如果提示设备忙,那可能有别的用户正在使用此设备,你可以用fuser -V 挂载点 ,查看谁在使用挂载目录;然后使用fuser -km 挂载点,可以踢出用户。然后,你就可以卸载设备了。

虚拟内存:在磁盘上的一片空间拿来当内存用,是作为物理内存空间的补充。
创建交换分区:
    mkswap 设备名
 swapon 设备名 ,打开交换分区
        -a  开启所有的
 swapoff 设备名,关闭交换分区
如果想让你的交换分区开机自动挂载,那你就得编辑 /etc/fstab。形如:
设备名   swap   swap  defaults  0 0
如果你没有磁盘空间了,而且又想建立交换分区,那该怎么办?
我们可以使用dd命令。
 
    dd 创建本地回环设备,把一个文件当做一个分区。也可以用dd命令复制文件。
dd if=/etc/fstab of=/tmp/fstab,就是把/etc/fstab,复制到/tmp/fstab。
创建交换分区
1.dd if=/dev/zero of=/tmp/swap bs=1k count=512
2.mkswap /tmp/swap
3.swapon /tmp/swap
你可以用free命令查看交换分区使用前后的变化。free命令查看内存的使用情况。

光盘的挂载
mount -t iso9660 /dev/cdrom /media/cdrom
 
 
阅读(1476) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~