Linux 文件系统管理

磁盘管理:

一.基础知识

  机械式硬盘:
    U盘,光盘,软盘,硬盘,磁盘
  磁盘的低级格式化:划分磁道

     扇区是最小的物理存储单位

     柱面是分区最小的单位
     分区:用于创建独立的文件系统
  MBR:Master Boot Record 主引导记录(512byte 0磁道0扇区)
    0-446 boot loader 引导加载器,引导操作系统启动
    64 :每16个字节标识一个分区
      所以硬盘上只能划分4个主分区
      扩展分区:里边有指针,指向磁盘上另外的额外空间
      磁盘按柱面进行分区
    2 :魔数 标记MBR是否有效
    笔记本 5400 r/min 台式机 7200 r/min
    磁道越靠外越快,C盘一般在最外边然后是D盘

鸟哥Linux198-
二.特殊文件

  1.连接文件
    1)硬连接
    /backup/a/m.txt
    /backup/b/n.txt 指向同一个inode 直接指向同一个inode的不同路径
    ls -l 下是硬连接的次数
      1.只能对文件创建,不能对目录,目录的硬连接为2
      2.不能垮文件系统
      3.创建硬连接增加文件的硬连接的次数
    2)符号连接
      磁盘块中存储的是另一个文件的路径,大小为字符个数
      权限取决于指向的文件的权限
      1.可以实现在目录上
      2.可以垮文件系统
      3.不会增加被连接文件的连接次数
      4.大小为指向路径包含字符的个数
    ln SRC DEST(连接文件)
      -s 软连接

  du 显示目录的大小 man一下du
    -a 显示整个目录中文件的大小
    -c 先显示每个文件的大小在显示整个目录的大小
    -h 带单位显示
    -s 只显示整个目录大小
  df 报告整个磁盘分区使用
    -h 改变单位显示
    -i 显示磁盘的inode使用情况
    -P 显示结果不换行

  2.设备文件
    b:按块为单位进行随机访问
    c:按字符为单位进行访问

    b:硬盘
    c:键盘
   /dev文件的字段含义
    两个数字主设备号(major number) 标识设备类型
    次设备号(minor number) 标识同一种类型中的不同设备
  mknod 创建块或者字符设备文件
  mknod [OPTION]... NAME TYPE [MAJOR MINOR]
  mknod mydev c 66 0
  mknod -m 640 mydev c 66 1
  硬件通过设备号连接到系统中
    echo “hello” >> /dev/pts1

  硬盘设备的设备文件名
    IDE ATA:/dev/hd
    SATA:sd
    SCSI:sd
    USB:sd
  a,b,c区别同一类型下的不同设备

  3.IDE :
    第一个IDE口:主从
      /dev/hda /dev/hdb
    第二个IDE口:主从
      /dev/hdc /dev/hdd
    磁盘分区
      hda1第一个主分区
      hda2
      hda3
      had4
      hda5第一个逻辑分区

    查看当前系统所有磁盘
      fdisk -l [/dev/设备]
    管理磁盘分区
      fdisk /dev/sda
      p 显示当前磁盘分区
      n 创建新分区
        e 扩展分区
        p 主分区
      d 删除分区
      w 保存退出
      q 不保存退出
      t 修改分区类型 文件系统类型
      L :显示文件系统类型
      l 显示支持所有类型
      /proc/partitions 内核重读才能识别
    Linux 支持的文件系统
 二.文件系统

      格式化:低级 创建磁道
  高级 创建文件系统

  VFS:虚拟文件系统,提供不同文件系统的接口
  光盘文件系统 ISO9660
  网络文件系统CIFS
  扩展文件系统 ext2 ext3 ext4

cat /proc/filesystems 显示系统支持的文件系统

 1.文件系统管理

   1)创建文件系统

     通用命令:

         mkfs:make file system

     -t FSTYPE 分区

mkfs -t ext2=mkfs.ext2
mkfs -t ext3=mkfs.ext3

专门用于ext文件的命令

      mke2fs
      -j   ext3
      -b   指定块大小 默认为4096,可取值为1024、2048
      -L   LABLE :指定分区的卷标
      -m # 不加%:预留给超级用户的块数百分比
      -N   inode个数
      -i #     为多少字节的空间创建一个inode 默认为8192,应该是块大小的2的n次方倍
      -F   强行创建
      -E   额外的文件系统属性

    2)查看文件系统属性

          blkid 设备 查看磁盘设备相关属性

      - /dev/sda5

      UUID 每个分区只有一个
      TYPE 文件系统类型
      LABLE

    e2label 查看、设定卷标

      e2label 设备文件 卷标:设定卷标

    dumpe2fs 显示超级块信息

      -h 只显示超级块信息头部 与 tune2fs -l 显示的信息一样

        3)调整文件系统属性

    tune2fs :调整文件系统属性

-j    无损创建 创建ext3
-L   设定卷标
-m   调整预留百分比
-r # 指定预留百分比
-o :设定默认挂载信息
   acl

-c #  指定达到挂在次数以后进行自检,0或-1关闭此功能
-i #  每挂载多少天后进行自检,,0或-1关闭此功能
-l     显示超级块信息

           4)自检    

fsck:检查并修复Linux文件系统
  -t FSTYPE 指定文件系统类型
  -a 自动修复
e2fsck 专用于修复ext2 ext3 文件系统
  -f 强制检查
  -p 自动修复 也可使用 -a

三、文件系统的挂载卸载

挂载:将新的文件系统关联至当前根文件系统
卸载:将某文件系统与当前根文件系统的关联关系解除

  1.mount:挂载

mount 设备 挂载点

说明:设备
   设备文件:/dev/sda5
   卷标:LABEL=MYDATA 
        UUID=
  挂载点:目录
   要求:
    1.此目录没有被其他进程使用
    2.目录事先存在
    3.目录中的原有文件将会暂时隐藏
  挂载完成的目录中有lost+found

  mount   显示当前系统中已经挂在的设备及设备点
    -a   挂载 /etc/fstab文件中定义所有的文件系统
    -n   默认情况下,mount命令每挂载一个设备,都会把信息写在/etc/mtab文件 -n 表示不写入文件
    -t FSTYPE 指定正在挂载设备上的文件系统类型,不使用此选项,mount调用blkid获取文件系统类型
    -r 只读挂载
    -w 读写挂载
    -o 指定额外的挂在选项,指定文件系统启用的属性
      asysc 异步写入
      remount 重新挂载
      ro :挂载为只读

   mount命令,可以挂载iso镜像
      mount device 挂在点
   mount -o loop 挂载本地回环设备

  2.umount :卸载某文件系统

umount 设备
umount 挂载点
注意:设备不能正在使用中

  3. 设置配置文件,永久挂载文件

       文件系统的配置文件 /etc/fstab 系统启动时自动挂载此文件中定义的挂载

         格式

     要挂载的设备  挂载点  文件系统类型  挂载选项默认defaults  转储频率 多长时间坐一次完全备份 0不备份  文件系统检测次序 一般说来只有根为1,其他可以同时为2 0 表

示不检查

     mount -a 挂载 /etc/fstab文件中的所有文件
      fuser -v 挂载点 看谁在使用挂载文件,验证进程正在使用的文件或套接字文件
              -k -m 将挂在点上的进程结束,终止正在访问此挂在点的所有进程

四.交换分区

1.free 查看当前系统物理内存和交换分区使用

        -m 以M为单位显示

2.创建交换分区

     1)fdisk 创建交换分区

fdisk /dev/sda
t
82

2)改变分区类型

mkswap /dev/sda8
-L label

3)swapon /dev/sda8 启动
  -a 启用所有交换设备/etc/fstab的交换设备
  swapoff /dev/sda8 关闭

3.利用回环文件创建交换分区

   1)loopback 使用软件模拟硬件

   2)创建一个镜像文件,1G 当做分区使用
       
cp 通过VFS读取到内存,在转移到另外一个位置
      dd命令 :复制文件,直接复制底层的数据流,直接复制底层的01代码不需要vfs
            dd if=/etc/inittab of=/root
                     if 数据来源
        of 数据的存储目标
        bs=1字节 单位
       count=2 几个bs单位
    seek 跳过bs个单位 虚拟出了 du -sh /var/swapfile 显示实际大小
    dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1 备份mbr
    dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1 还原

    dd if=/dev/zeros of=/var/swapfile bs=1024 count=1 创建一个回环文件
    swapon /var/swapfile

 

posted @ 2016-07-04 21:27  ranran1203  阅读(225)  评论(0)    收藏  举报