磁盘管理


  • 硬盘结构
    • head(磁头):每个盘片一般有上下两面,分上下两个磁头

    • traack(磁道):磁道是从盘片外圈往内圈编号,为0磁道,1磁道,...靠近主轴的同心圆用于停靠磁头,不存储数据

    • cylinder(柱面):同磁道个数

    • sector(扇区):磁道切分为很多扇形区域,每个磁道的扇区数量相等

    • platter(圆盘):盘片数量

    • block(块):文件系统中存储数据的最小单元,ext3文件系统中,创建时默认4k,分为存储文件数据的data block和存储目录数据的directory block

    • inode:又称“索引节点”,每一个inode对应一个文件或目录,记录了文件的大小、所占用的block以及目录的directory block信息。

    • Inode Bitmap:翻译成中文就是“inode位图”,用二进制的方式记录了inode的使用情况。

    • Block Bitmap:翻译成中文就是“块位图”,同Inode Bitmap,用二进制方式记录了块的使用情况。

    • Super Block:超级块包含了该硬盘或分区上的文件系统的整体信息,如文件系统的大小等。

    • 块组:存放Super Block,GDT,Block Bitmap,Inode Bitmap,inode,Data Blocks

    • 组描述符:

    • MBR:主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。

    • Boot Block:位于每个分区的第一个扇区,存放引导程序时使用,在多系统时使用

  • du 查看文件大小
    • -s 查看目录大小
    • -h 以K,M为单位显示大小
  • df 显示磁盘空间详情
    • -h 以K,M,G为单位显示大小
    • -i 查看inode的使用情况
    • -T 查看系统的文件系统类型
  • 设备文件
    • b 块设备,随机访问的设备 硬盘
    • c 字符设备,线性设备 键盘
  • mknod 创建设备文件
    • -m 指定权限
    • mknod mydev -m 755 c 66 1  创建一个名为mydev的字符设备文件,主设备号为66,次设备号为1,权限为755
  • fdisk 查看磁盘信息或磁盘分区
    • 每一个分区都可以使用一种文件系统
    • -l 查看硬盘信息
    • p 显示当前硬盘分区,包含没有保存的改动
    • n 创建分区
      • e 扩展分区
      • p 主分区
    • d 删除一个分区
    • w 保存退出
    • q 不保存退出
    • t 修改分区类型
  • partprobe  重新读取分区表,用于更新/proc/partitions文件,在创建分区或者删除文件后还出现占用空间时使用
  • partx 和partprobe效果一样
  • mkfs 创建文件系统
    • -t 指定文件系统类型(ext2、ext3)
  • mke2fs
    • -j 创建ext3文件系统,该系统带日志功能
    • -b 指定块大小,可用值为1024,2048,4096...
    • -c;检查是否有损坏的区块;
    • -f<不连续区段大小>:指定不连续区段的大小,单位为字节;
    • -F:不管指定的设备为何,强制执行mke2fs;
    • -i<字节>:指定"字节/inode"的比例,默认为8192;
    • -N:指定要建立的inode数目;
    • -l<文件>:从指定的文件中,读取文件西中损坏区块的信息;
    • -L<标签>:设置文件系统的标签名称;
    • -m<百分比值>:指定给管理员保留区块的比例,预设为5%;
    • -M:记录最后一次挂入的目录;
    • -q:执行时不显示任何信息;
    • -r:指定要建立的ext2文件系统版本;
    • -R=<区块数>:设置磁盘阵列参数;
    • -S:仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap;
    • -v:执行时显示详细信息;
    • -V:显示版本信息。
    • -E:扩展属性
      • stride:指定条带大小,值为(CHUNKS/BLOCK)
  • blkid 查看文件系统的信息
    • blkid /dev/sda5 查看sda5设备相关属性(UUID、TYPE、LABEL)
  • e2label 查看或设定卷标
    • e2label /dev/sda1 查看/dev/sda1设备卷标
    • e2label /dev/sda1  mydev 设置/dev/sda1卷标为mydev
  • tune2fs 调整文件系统的相关属性
    • -c:指定挂在#次进行自检,0或-1表示关闭此功能;
    • -C:设置文件系统已经被加载的次数;
    • -e:设置内核代码检测到错误时的行为;
    • -f:强制执行修改,即使发生错误;
    • -i:设置相邻两次文件系统检查的相隔时间,0或-1表示关闭此功能;
    • -j:为“ext2”文件系统添加日志功能,将其转换为“ext3”文件系统;
    • -l:显示文件超级块内容;
    • -L:设置文件系统卷标;
    • -m:显示文件保留块的百分比;
    • -M:设置文件系统最后被加载到的目录;
    • -o:设置或清除文件系统加载的特性或选项;
    • -O:设置或清除文件系统的特性或选项;
    • -r:设置文件系统保留块的大小;
    • -T:设置文件系统上次被检查的时间;
    • -u:设置可以使用文件系统保留块的用户;
    • -U:设置文件系统的UUID。
  • dumpe2fs :用于打印“ext2/ext3”文件系统的超级块和快组信息。
    • -h:只显示超级快信息
  • fsck:检查修复文件系统
  • e2fsck:修复ext2、ext3文件系统
  • mount:挂载
    • -a 挂载/etc/fstab文件中的所有设备
    • mount /dev/sda5 /mnt/cd/
  • umount:卸载某文件系统
    • umount /mnt/cd/
    • umount /dev/sda5
  • mkswap 创建swap分区
    • mkswap /dev/sda5
  • swapon 启用swap分区
    • swapon /dev/sda5
  • swapoff 关闭swap分区
    • swapoff /dev/sda5
  • dd 转换并复制文件
    • if=数据来源
    • of=存储目标
    • bs=数据大小
    • count=bs的个数
    • dd if=/var/a of=/var/b 把a文件复制成b文件
    • dd if=/dev/sda of=/mnt/usb/mbr.back bs=512 count=1 将sda的mbr保存到usb的mbr.back中
    • dd id=/dev/zero of=/var/swapfile bs=1M count=1024  创建一个1G文件大小的swapfile文件
  • /etc/fstab文件中的内容会在开机时自动挂载
    • 格式:需要挂载的设备--挂载点--文件系统类型--挂载选项--转储频率(每多少天做一次完全备份)--文件系统检测次序(只有根可以为1)
  • fuser 验证进程正在使用的文件或者套接字
    • -v 查看某文件上正在运行的文件
    • -k 杀死进程
    • -m 和挂载设备相关
    • fuser -km /mnt/cd 终止访问/mnt/cd文件的所有进程