ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2019-03-26 15:56:51  阅读:296  来源: 互联网

标签:ext4 sdb2 mnt 文件系统 dev 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有