系统相关
首页 > 系统相关> > Linux学习笔记九:磁盘分区与文件系统

Linux学习笔记九:磁盘分区与文件系统

作者:互联网

disk partitions & filesystem

---磁盘分区与文件系统---

分区

磁盘分区方法:主流MBR & GPT
parted
fdisk:2T以内
gdisk:更大的分区

查看分区表的四种方法:
                lsblk:
                cat /proc/partitions:
                cat /dev/sd*
                fdisk -l /dev/sda       这个命令查看的是硬盘里的信息,上面三种都是查看内存,可能存在不同步的情况!

如何同步内存的分区表信息?
                centos6:
                                新增加了分区同步:partx -a /dev/sda
                                新删除了分区同步:partx -d --nr 6 /dev/sda      删除了第6个分区  
                centos7:直接使用该命令同步: partprobe

fdisk使用:
                -l /dev/sd* 查看disk相关信息:
                                centos7:size,sector,I/O,parttions,disk label type(dos/gpt)...
                                centos6:size,head,sectors,track,cylinder,disk label type...     注:centos6按照柱面划分,centos7按照扇区划分。
                n:创建新分区
                d:删除
                p:打印分区表
                q:不存盘退出
                w:存盘退出
                t:修改ID        centos7:
                                                                主分区:83
                                                                swap:82(ext)
                                                                extend:5
                                                                LVM:8e
                                                                swap:19(GPT)

gdisk:与fdisk指令类似

创建文件系统

为什么创建文件系统?怎么查看?怎么使用文件系统?
                使用:调用虚拟文件系统提供的命令接口
                查看:lsblk -f 或者 blkid
                磁盘分区完成后没有任何信息,文件系统将磁盘以文件的方式组织和管理。
查看Linux内核支持的文件系统:
                ls /lib/modules/3.10.0-693.el7.x86_64/kernel/fs/
                目前常用的:ext4,fat,nfs,xfs,ceph,iso9660(光盘)...
                ceph:分布式文件系统
                                数据有冗余,数据的一部分是在好几台服务器上有备份,可恢复。
centos6:ext4    >ext2 有日志功能,掉电数据不会丢失。
centos7:xfs

创建(格式化):mkfs.xfs /dev/sdb1 -f     文件系统创建完成,会生成一些元素据等。
                -L "卷标" 建议写挂载点的名字
                如:mkfs.xfs -L "/mnt/dsb1" /dev/sdb1
mke2fs也可以创建ext文件系统,不建议使用了。

tune2fs -l /dev/sdb2    查看分区的属性信息,只支持ext系统

centos6:人为创建的分区,没有acl功能。tune2fs -o acl /dev/sdb1添加acl属性 需重新挂载生效

filesystem state:clean 表明没有问题

如何破坏ext4文件系统并修复?
                1:为/dev/sdb2分区创建ext4文件系统,并挂载       mkfs.ext4 -L "/mnt/sdb2" /devsdb2
                2:dd 修改/dev/sdb2     dd if=/dev/zero of=/dev/sdb2 bs=10M count=1
                3:fsch修复,重新挂载    fsck.ext4 /dev/sdb2 -y  mount /dev/sdb2 /mnt/sdb2/ 但是目录中原来的文件可能丢失了

查看块组和节点表和超级快:dumpe2fs /dev/sda1|less

根据UUID查找分区:blkid -U `sed -nr '/^UUID/s/UUID=(.*) \/data.*$/\1/p' /etc/fstab`

blkid:查看分区,LABEL,UUID,mount,filesystem...
                [root@chenxu ~]# blkid /dev/sdb2
                /dev/sdb2: LABEL="/mnt/sdb2" UUID="5b14eaf9-2ebf-4373-9e99-6a702ab207eb" TYPE="ext4"

挂载:

                一个设备可以有多个挂载点,多个设备不能挂载到一个目录,通常挂载点应该为空目录

umount时,挂载目录被其他人占用(busy)怎么办?
                查看:lsof /mnt/sdb2/  fuser -v /mnt/sdb2
                踢出:fuser -km /mnt/sdb2

查看目录是否有挂载:findmnt /mnt/sdb2

挂载:建议使用UUID,因为唯一

mount常用命令选项:
                -r: r
                -w: r + w
                -n:不更新/etc/mtab,影藏挂载(centos6有效)
                -a:自动挂载/etc/fstab中定义的的挂载设备
                -U:UUID
                -L:LABEL
                -B:绑定目录到另外一个目录
                -o:可以添加一些子选项 acl, remount, ro, noatime, nodiratime,noexec...

一些后面虚拟化会用到的知识:
                centos7:
                                1:创建稀疏文件 dd if=/dev/zero of=vdisk.img bs=1M count=1 seek=2048    创建一个2G的稀疏文件,
                                2:文件模拟硬盘挂载
                                                1:mkfs.ext4 /data/vdisk.img     创建ext4文件系统
                                                2:mount /data/vdisk.img /mnt/vdisk 挂载
                                                3:df 查看       /dev/loop0       1998608    6144   1871224   1% /mnt/vdisk 默认第一个设备名为/dev/loop0,与centos不同,系统可以根据文件挂载自动生成相应的/dev/loop*,
                                                                centos6需要挂载时指定。
                centos6:
                                1:centos6默认有loop0~loop7 8个换回设备
                                2:将loop设备与文件绑定  losetup /dev/loop0 /data/vdisk.img
                                3:挂载  mount /dev/loop0 /mnt/vdisk
                                4:查看:df       /dev/loop0       1108144    1424   1048764   1% /mnt/vdisk

                                修改默认loop设备数量:vim /boot/grub/grub.conf  <-- max_loop=100 需要重启

永久挂载:
                写入:/etc/fstab
                UUID:mount point:filesystem:options:backup天数:check

/etc/fstab文件故障导致系统无法启动修复:
                centos6:默认/以只读方式挂载,需要mount -o rw,remount 
                centos7:是r + w

Swap作用:
[root@chenxu ~]# free -h
                            total        used        free      shared  buff/cache   available
Mem:           1.9G        256M         89M        9.3M        1.6G        1.5G
Swap:          3.0G          0B        3.0G
[root@chenxu ~]# dd if=/dev/zero of=/dev/null bs=4G count=1
0+1 records in
0+1 records out
2147479552 bytes (2.1 GB) copied, 7.95993 s, 270 MB/s

添加swap分区后,生效:swapon -a
关闭swap:swapoff
查看swap:cat /proc/swaps

如何把文件当作swap使用?
                1,mkswap /data/swapfile
                2,swapon -a
                3,chmod 600 /data/swapfile
                4,swapon -s 查看
测试硬盘速度?
         1012  dd if=/dev/zero of=/data/f1 bs=1024 count=1000000 conv=fdatasync
         1013  dd if=/dev/zero of=/data/f2 bs=2048 count=500000  conv=fdatasync
         1014  dd if=/dev/zero of=/data/f3 bs=4096 count=250000  conv=fdatasync
         1015  dd if=/dev/zero of=/data/f4 bs=1024 count=1000000  conv=fdatasync
            如何清除一个磁盘的分区信息?
                            用dd直接清空/dev/sd*的前512字节即可。

标签:ext4,sdb2,mnt,文件系统,dev,Linux,挂载,磁盘分区
来源: https://blog.51cto.com/13182370/2369357