磁盘及文件系统管理

ln [ -s -v] SRC DEST

硬连接:

    1、只能对文件创建,不能应用于目录

    2、不能跨文件系统

    3、创建硬连接会增加文件被连接的次数

符号连接:

    1、可应用于目录

    2、可以跨文件系统

    3、不会被增加被连接的次数

    4、其大小为为指定的路径所包含的字符个数

du命令:

    -s 查看目录包含目录下文件的大小

    -h 做单位换算,默认为M

df命令:显示磁盘使用大小

    -h 做单位换算,默认为M

    -i 显示Inode的使用情况

    -P 使用postfix风格显示

设备文件:

    b:设备,按块为单位,随机访问的设备

    c:字符,按字符为单位,线性设备,有次序的访问

    b:硬盘

    c:键盘

  设备文件都在/dev目录

     主设备号

        标识设备类型(major number)

    次设备号

        标识同一种类型中不同设备(minor number)

    不真正占用磁盘空间,存储在inode中

mknod命令:创建设备文件

    mknod [OPTIAN]...NAME TYPE [MAJOR MINOR]

    mknod mydev c 66 0

    -m [MODE]权限

        mknod -m 640 mydev2 c 66 1

硬盘设备的设备文件名:

    IDE,ATA:HD开头

    SATA:sd开头

    SCSI:sd开头

    USB:sd开头

       使用a,b,c...来区别同一种类型下的不同设备

    IDE:

        第一个IDE口:主、从    

            /dev/hda, /dev/hdb

        第二个IDE口:主、从

            /dev/hdc, /dev/hdd

分区编号:

    hda1:第一个主分区

    hda5:逻辑分区,分区号只能从5开始

查看当前系统识别了几块硬盘设备:

fdisk 磁盘查看工具

    -l    

    fdisk -l [/dev/to/some_device_file]

    p:显示当前硬盘的分区,包括没保存的改动

    n:创建新分区

        e:扩展分区

        p:主分区

    d:删除一个分区

    w:保存退出

    q:不保存退出

    t:修改分区类型

        L:显示分区类型

    l:显示分区类型

创建和删除后,内核还无法识别,需要内核重读硬盘分区表,使用partprobe命令,将分区表写入/proc/partitions

管理磁盘分区:

linux支持的文件系统

   文件系统:ext2 ext3 ext4

   网络文件系统:nfs ocfs32(集群使用) gfs2 全局文件系统    


vfs:virtual filesystem,提供支持多种文件系统


linux创建文件系统

    mkfs -t ext3



元数据:

    超级块:super blcok,包含如下:内容

        1、有多少块组,

        2、每个块组包含多少块,

        3、块大小,

        4、空闲磁盘块,已用磁盘块, 空闲inode,已用inode

    块组描述符表(GDT):

        1、当前系统有多少块组, 块组的起始位置,块组名

磁盘分区的逻辑组成部分:wKioL1U0lBSzhYYKAAClBT46JbI801.jpg

目录表组成部分

wKiom1U0lD6RRb6DAAEVIusots8810.jpg

inode组成部分:

wKioL1U0lk6A10MBAABzrtpBXKM994.jpg

ext3与ext2的区别:

    日志文件系统(journal file system)


文件系统管理:

    1、重新创建文件系统

     /proc/filesystems :查看当前内核所支持文件系统类型   

    mkfs:make file system

        -t filesystemtype /dev/sdb2

    mkfs.ext4 /dev/sdb2

    mke2fs命令:管理ext系列文件系统

        -j:创建ext3类型文件系统

        -b BLOCK_SIZE:指定块大小, 默认为4096,可用取值为:1024,2048,4096    

            -b 2048 /dev/sdb2(使用方法)

        -L LABEL:指定分区卷标

        -m #:指定预留给超级用户的块数百分比

        -i 用于指定为多少字节的空间创建一个inode,默认为8192,这里给出的数值应该为块大小的            2n^倍

        -n 指定要创建inode的个数

        -F:强制格式化

        -E:用于指定额外的文件系统属性

    blkid命令:

        查询或查看磁盘设备的相关属性

        UUID

        TYPE

        LABEL

    e2label:查看或定义卷标

        e2label 设备文件,卷标    

    tune2fs :调整文件系统的相关属性

        -j:不损害原有数据,将ext2升级为ext3

        -L LABEL:设定或修改卷标

        -m #:指定预留给超级用户的块数百分比

        -r #:指定预留给超级用户的块数

        -o:设定默认挂载选项

            acl

        -c #:指定挂载多少次进行自检,0或-1表示关闭此功能

        -i #:每挂载使用多少天后进行自检,0或-1表示关闭此功能

        -l:显示超级块中的信息 tune2fs -l /dev/sda1

    dumpe2fs:显示文件属性信息

        -h 只显示超级块信息

    fsck:检查并修复linux文件系统

        -t FSTYPE :指定文件系统类型

        -a:自动修复

    e2fsck:专用检查并修复linux文件系统

        -f 强制选项

        -p 自动修复

挂载:将新的文件系统关联至当前根文件系统

卸载:将某文件系统从当前根文件系统的关联关系移除

    mount:

    mount 设备 挂载点

        设备:设备文件:/dev/sda5

              卷标:LABEL=""

              UUID:UUID=""

        挂载点:目录

            要求:

                1、此目录没有被其它进程使用

                2、目录得事先存在

                3、目录中的原有的文件将会暂时隐藏

    挂载完成后,要通过挂载点访问对应文件系统上的文件

卸载:

    umount 设备

    umount 挂载点

    卸载注意事项:

        1、挂载的设备没有进程使用;

mount [options] [-o options] DEVICE MOUNT_POINT

    -a:表挂载/etc/fstab文件示中定义的所有文件系统

    -n:默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件,使用-n        选项意味着挂载设备时,不把信息写入此文件

    -t FSTYPE:指定正在挂载设备上的文件系统的类型,不使用些选项时,mount会调用blkid命令获取               对应文件系统的类型

    -r:只读挂载

    -w:读写挂载   

    -o:指定额外的挂载选项,也即指定文件系统启用的属性;

       async:异步写入

       atime,在高访问的时候,可以关闭atime功能 

       netdev,在启动如果连接不上网络映射的盘, 就停止挂载其网络系统

       remount 重新挂载当前文件系统

       ro:挂载为只读

       rw:读写挂载

mount -o remount,ro /dev/sdb1 重装挂载并以只读方式

mount -o remount,sync /mnt    以同步的方式重装挂载设备(异步与同步写入文件,异步可以提升性                               能,默认也是异步挂载设备)

mount -o loop /mnt/name.iso /mnt 挂载ISO文件

stat /mnt    查看挂载点的基本信息

fuser 命令:验证进程正在使用的文件或套接字,也可用于正在使用的目录

    -v 查看

        fuser -v /mnt/data1

    -k 杀死

    -m 指定杀死类型为挂载设备

    fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程

swap分区:

虚拟内存

    X86:32bit

    虚拟地址,线性地址

free:查看物理内在和交换空间的使用情况 

创建交换分区:

    1、先使用fsmk分割一个分区,并将分区类型调整为swap类型(82)

    2、mkswap /dev/sda8(格式化写入文件系统)

        -L LABEL

    3、swapon /dev/sda8 (启用sda8的交换分区)

            -a 启用所有的交换设备,定义在/etc/fstab文件中的交换设备

    4、swapoff /dev/sda8 (关闭sda8的交换分区

dd命令:

    dd if=数据来源 of=数据存储目标,bs=数据大小(默认为字节,可以使用1M格式) count=数量

    dd if=/etc/inittab of=/root

    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(还原MBR)

    cat /dev/cdrom > /root/shel5.iso

    dd if=/dev/zero of=/var/swapfile2 seek=1023 bs=1M count=1 创建一个假的1024M文件,真实大           小为1M空间

文件系统的配置文件/etc/fstab

    os在初始时,会自动挂载此文件中定义的每个文件系统

    格式如下:

    1、要挂载的设备(LABEL,UUID,设备文件)

    2、挂载点

    3、文件系统类型

    4、挂载选项,默认为defaults

    5、转储频率(多长时间才完全备份,0表示不做,1表示每天,2表示每隔一天)

    6、文件系统检测次序(一般情况,只有根为1,0表示不检查)

你可能感兴趣的:(文件系统,磁盘)