linux的磁盘管理          

     拿到一块硬盘,我们需要干嘛呢?

    一般的情况下,我们要根据具体的需要,对磁盘进行管理,比如划分磁盘分区,

一般情况下,我们可以使用mkfs /dev/sd 或mkfs /dev/hd对磁盘进行分区,一个磁盘上,最多有四个主磁盘分区,当然也可以有三个主磁盘分区,一个扩展磁盘分区,总的来说就是主磁盘分区+扩展磁盘分 区<=4,而在扩展分区中,可以创建多个逻辑磁盘分区。

     在创建的过程中,我们可以使用fdisk来创建,在创建的过程中,我们可以通过使用-t来指定创建磁盘分区的文件类型,常见的文件类型 有:ext2.,ext3,swap,fat,vfat,jfs,xfs等,创建完成后,可以使用fdisk -l 查看磁盘分区,在使用fdisk创建分区的时候,会出现一个交互式的创建分区的过程,在里面,我们可以使用d来删除指定分区,使用n来创建新的分区,使用 p来列出现有的磁盘分区,使用t来指定创建磁盘分区的类型,w来保存所做的所有操作。

      创建完分区后,有些时候会出现不显示新创建的分区,这个时候我们可以使用partprobe+磁盘名来重新读取一下磁盘分区,如:partprobe /dev/sda

       创建完分区,我们还要对磁盘进行格式化,而格式化的命令有两个常用的:

        1、mkfs  ,使用-t来把指定的磁盘格式化成不同的类型

        2、mke2fs,这个命令比mkfs的功能更加强大,如使用-b来指定block的大小,使用-j来把ext2的格式化成ext3的,使用-L来为磁盘添加卷标,使用-m来给管理员留下一个预留的管理空间,通常是使用百分比。

        如果磁盘格式化不和用户的意愿,还可以使用tune2fs来修正磁盘,他的选项和mke2fs类似,其中还有一个-c的选项,是用来指定挂载多少次系统会自检,默认的情况下是20次,180天自动自检一次。

         前面的工作昨晚了,就要对磁盘进行挂载了,在挂载中,我们尝试用mount命令,取消挂载使用umount命令,在/dev/fstab文件中,可以指定 系统启动时候自动挂载的文件系统,当然,在mount中,有个remount的选项,可以在不用卸载的情况下,就能修改挂载的信息。对于写入/etc /fstab文件的,可以使用mount -a来自动挂载。

          挂载完后,我们有的时候要卸载,有的时候,当我们卸载的时候,会出现繁忙的提示,我们可以退出当前目录,也可以使用fuser -v +挂载点,可以查看当前登录的用户,管理员可以强制其退出,使用fuser -km +挂载点,可以踢出用户,这样就能退出了,以上是从拿到一个硬盘到最后使用,


linux下的磁盘管理
类型:
ext3.ext4.ext2.xfs.jfs.feiserfs.iso9660.swap.vfat.ntfs

fdisk -l  查看磁盘分区
fdisk /dev/sda  可以打开一个管理磁盘分区的交互式管理
d:删除一个分区
n:创建分区
p:显示系统上的分区
t:调整分区类型
q:不保存退出
w:保存退出
扩展分区不能格式化

partprobe  +磁盘名字    重新读取一下分区表,不需要重启系统
eg:partprobe /dev/sda


mkfs 磁盘格式化命令
 -c 检查是否有坏块
 -t  (ext2,ext3,vfat...)格式化成文件的类型
     mkfs [2[Tab]]
     mkfs -t ext3=mkfs.ext3  
     mkfs -t fat=mkfs.vfat
     mkfs -t ext2=mkfs.ext2
 eg: mkfs -t TYPE    /dev/sda5

blkid :  command-line  utility  to  locate/print  block  device  attributes

mke2fs  磁盘格式化命令,功能比mkfs更强大
  -b  block_size  {1024|2048|4096}
  -c  检查磁盘是否坏块
  -j  日志文件系统,就是格式化成ext3的,否则就是ext2的
  -L  指定磁盘卷标的
  -i  指定type/inode比例(默认128个字节一个inode)
  -n  指定type/inode的比率
  -m  给管理员留下一个管理空间(默认5%)

fsck 用于检查文件系统的
  -t  检查文件系统类型的
  -a  自动修复


tune2fs 修正磁盘的系统
 -j  直接把ext2升级到ext3
 -L  修改卷标
 -l  查看系统supperblock的信息
 -m  修改管理员预留空间大小比率
 -c  指定挂载多少次就自检(默认挂载29次,0,-1 关闭自动自检)
 -i  指定每隔多少时间自检一次(默认180天)
 -o  设定当前分区默认挂载选项的



dumpe2fs
e2label  查看卷标,也可以加卷标
e2label /dev/sda5  MYDATA  添加卷标
e2label /dev/sda5          查看卷标

mount [-t fstype] [options] DEVICE MOUNT_POINT
      -t ext3,iso9660(光盘)
      -r 只读
      -w 只写
      -a 自动挂载所有的文件系统
      -n 不写入 /etc/mtab
      mount 可以查看系统挂载的,可以在/etc/mtab文件中有实时的记录
      -o  defaultts
           async  异步写入
           noatime 不更新访问时间
           dev
           exec 执行二进制文件
           noexec 不执行二进制文件
      /etc/fstab系统启动过程自动挂载的文件系统
mount -o remount,rw /dev/sda5 不用卸载就能重新挂载原本的位置  
umount DEVICE
umount MOUNT_POINT 要是正在占用的时候是不会卸载的,退出来就可以卸载了


/etc/fstab文件格式
6个字段:
1、要挂载的设备:/dev/sda5,LABLE=mydate,UUID=""
2、挂载点:
3、文件系统:
4、挂载选项:如果有多个选项,选项间使用逗号隔开,eg:defaults,acl
5、转储频率(备份):0(不做任何备份),1(每天都备份),3(每个一天备份)
6、文件系统的自检次序:0(不自检),1(只用root),2,3,...9

写入/etc/fstab文件的文件,可以使用如下命令自动挂载
mount -a
mount /dev/sda5

fuser -v /mydata      查看当前登录的用户
fuser -km  /mydata    踢出用户

虚拟内存
  在磁盘上的一片空间

  大小:
     物理内存    虚拟内存
       <2G         2x
      2G~4G        1.5x
       >4G         4G
/proc/partitions 内核中显示的分区,如果没有,使用partprobe  +磁盘名字    重新读取一下分区表,不需要重启

mkswap 专门用于创建交换分区的

swapon device  打开交换分区
swapoff device 关闭交换分区
也可以写入/etc/fstab,注意其中的格式


dd创建本地回环设备(磁盘上没有分区可用,但是可以用文件来创建交换分区)
   dd if=/etc/fstab of=/tmp/fstab  把/etc/fstab复制到/tmp/fstab
   dd if=/dev/zero  of=/path/to/file bs=1M count=2 产生一个2M的文件
   mkswap /path/to/file
   swapon /path/to/file  另类创建交换分区的方法

 mount -t iso9660 挂载光盘


echo 'n

     +10G
     w’ | fdisk /dev/sda &>/dev/null
     自动创建磁盘分区,可用于脚本中