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