Linux中的分区管理

1. 磁盘分区类型

磁盘分区主要分为两种类型:

  • MBR 
    MBR是一个比较古老的分区类型了,不支持2TB的大硬盘。在磁盘的0磁道0扇区的512字节存放的就是MBR的信息。前446字节为bootloader,后面64字节存放的是分区表,后面2字节存放的是55aa的分区标识符。MBR分区类型最多只能支持4个主分区和扩展分区,其余的分区只能是逻辑分区。
  • GPT 
    GPT分区是为了应多MBR的诸多问题而产生的。GPT里面已经没有主分区和逻辑分区的概念了。所有的都是主分区,最大支持128个主分区。

2. 分区管理命令

2.1 fdisk

fdisk:划分mbr分区
-l:用于查看磁盘的分区信息
子命令
p:分区列表
t:更改分区类型
n:创建新分区
d:删除分区
w:保存退出
q:不保存退出

2.2 gdisk

gdisk主要用于创建GPT分区,使用方法和fdisk类似

2.3 parted

parted可以用于管理mbr和gpt分区:

命令
parted /dev/sd# mklabel msdos|gpt:指定分区类型是gpt或mbr
parted /dev/sd# mkpart primary 1 200:创建id为1的200M主分区
parted /dev/sd# rm 1:删除id1分区
parted /dev/sd# print:查看分区表
parted -l:查看磁盘详细信息

注意: 
parted的所有操作都是实时生效的,所以使用的时候需要注意!

3. 创建文件系统

磁盘在创建完分区之后需要创建文件系统才能进行文件的存储。 
通过/lib/modules/`uname -r`/kernel/fs可以查看系统支持的文件系统类型。 
Linux中的分区管理

3.1 创建文件系统

创建文件系统通过mkfs命令

mke2fs
-t:指定要创建的文件系统类型
-L 卷标:指定要格式化分区的卷标名
-j:相当于创建ext3
-i #:数据空间每多少个字节创建一个inode,inode大小不应该小于block大小
-N #:为数据空间创建多少个inode
-m #:指定为管理员保留的空间大小,默认为5%
-O FEATURE[…]:启用指定的特性

3.2 查看编辑文件系统

blkid
-U:查看指定uuid的设备
-L:查看指定卷标的设备信息
e2label
管理ext系列文件系统给的卷标,如e2label /dev/sdb1 test
findfs
findfs LABEL=卷标名:根据卷标查找分区
findfs UUID=uuid号:根据uuid查找分区
tune2fs
-l:查看指定文件系统的超级块信息
-L 卷标:修改卷标
-m #:修改预留给管理员的空间
-j:将ext2升级为ext3
-O:启用或禁用文件系统属性
-o:调整文件系统的默认挂载选项
-U uuid:修改UUID号
dumpe2fs
查看超级块和分组信息
-h:只查看超级块信息,不查看分组信息

3.3 修复文件系统

文件系统有时会因为各种原因导致损坏,所以就需要修复。

fsck
-t:指定分区类型
-p:自动修复错误
-r:交互式修复
-y:自动修复

ext2和ext3的区别是ext2没有日志功能,在生产环境中,文件系统的日志功能是很重要的。

3.4 inode,datablock和superblock介绍

  • datablock 
    在ext文件系统中数据是存放在datablock中的,datablock大小有三种:1024K,2048K,4096K。一个文件可以占用多个datablock。
  • inode 
    真实的数据存放在datablock区域中,数据的元数据则存放在inode中,如数据分布在哪些datablock中,数据的大小等属性信息。每个数据占用一个inode,所以如果inode占满了,datablock还有空余的情况下也不允许在存放数据。
  • superblock 
    超级块往往存放在分组的最起始位置,其存放的内容包括inode bitmap,block bitmap,inode table等信息。如果超级块损坏,则所有数据将不可读,所有超级块还有多个备份。

4. 挂载、卸载分区

4.1 挂载分区

mount
mount /dev/sd# 挂载点:直接通过设备名挂载
mount -L 卷标|-U uuid:可以通过卷标和uuid挂载
-t:指定要挂载的分区的类型,系统现在会自动更识别,不需要指定
-r:只读挂载
-w:读写挂载
-n:挂载不更新/etc/mtab文件,mount也不可见,可以通过cat /proc/mounts看到
-a:自动挂载所有支持自动挂载并存在于/etc/fstab中的分区
-B | –bind:挂载一个目录到另外一个目录
-o 挂载选项:指定挂载时需要开启的特性:
async:异步读写
sync:同步读写模式,安全,但是降低性能
atime|noatime:访问是否允许改变atime
auto|noauto:是否支持-a自动挂载
exec|noexec:是否支持在此文件系统运行应用程序
dev|nodev:是否支持在此分区使用设备文件
suid|nosuid:是否支持suid和sgid权限,建议采用nosuid
remount:重新挂载,不需要umount
ro:只读
rw:读写
user|nouser:是否允许普通用户挂载此设备,默认只有管理员才能挂载设备
acl:是否启用分区的acl功能
defaults:相当于rw,async,dev,auto,nouser,nosuid

4.2 查看挂载情况

findmnt 挂载点:查看挂载情况
lsof 挂载点:查看正在访问指定文件系统的进程
fuser -v 挂载点:查看正在访问指定文件系统的进程和用户
furer -km 挂载点:踢出所有正在访问的进程和用户

4.3 取消挂载

umount 设备名:通过设备名取消挂载
umount 挂载点:通过挂载点取消挂载

5. /etc/fstab介绍

默认所有的分区在系统开机之后是不会自动挂载的,此时需要把挂载信息添加到/etc/fstab中 
/etc/fstab分6个字段:

  1. 设备名,卷标名,uuid,因为设备名和卷标名都会改变,建议采用uuid
  2. 挂载点
  3. 文件系统类型,光盘ISO9660,swap分区为swap
  4. 挂载选项:defaults,rw,async等参数
  5. 是否定时备份分区,0为不备份
  6. 开机是否检测分区,0为不检测,此处数字代表优先级

6. swap分区

swap交换分区用于内存不够用时临时把内存不用的数据存放到swap交换分区上,所以建议swap分区采用高速磁盘。

mkswap 设备名:创建swap交换分区
swapon swap分区名:挂载swap分区
swapon -s:查看swap分区挂载情况;swap分区有优先级之分,可以通过调整优先级来调整swap分区的使用优先顺序
swapoff swap分区名:卸载是swap分区

以上是对Linux分区管理的总结,LInux磁盘高级管理部分后续再补充。

原创文章,作者:王子豪,如若转载,请注明出处:http://www.178linux.com/73867

(1)
上一篇 2017-04-21 22:42
下一篇 2017-04-22 16:51

相关推荐

  • N25-第八周

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示; #!/bin/bash ipnet=172.16.250. trap ‘trap_action’ INT trap_action() { break return 1 } for ((i=1…

    Linux干货 2017-05-27
  • Linux中的用户、组和权限的管理

    一、Linux的安全模型     在Linux中用户登陆时必须提供用户名和密码(用户是由root用户创建的,最初的密码也是root用户设定的)。系统使用用户和群组来控制使用者访问文件和其他资源的权限。每一个文件都一定属于一个用户(一般该用户就是文件的创造者)并与一个群组相关。每一个进程(处理程序)都会与一个用户和群组关…

    Linux干货 2016-08-07
  • N25-第六周作业

      复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;               s/要查找的内容/替换为的内容/修饰符 %:全文,相当…

    Linux干货 2017-02-13
  • Linux的哲学思想

    Linux的哲学思想 一切皆文件  几乎把所有的资源系统抽象为文件形式:包括硬件设备,甚至通信接口等 由众多功能单一的程序组成:一个程序只做一件事,并且做好;组合小程序完成复杂任务  力求使程序精简凝练,出现地完成最核心的需求;尽量避免使其膨胀成为一个臃肿的程序,致使大部分代码很少被需要和执行。 小程序易于理解,维护,消耗系统资源较少,易…

    Linux干货 2017-07-03
  • 第三周学习总结之用户管理

    写在前面 我们知道作为一个系统管理员,对系统内人员的管理是非常频繁的,今天给张三添加某个权限,明天李四离职需要删除账号、回收权限,后天王五部门调动,都需要涉及到人员账号的相应调整。因此用户的管理就变得尤其重要。 用户管理 Linux系统的用户有普通用户和特权用户之分,特权用户是可以执行特权操作的一个或一类用户,而普通用户则只能执行普通的操作,没有特权操作权利…

    2017-12-19
  • Linux的发行版及哲学思想

    Linux是一套免费使用和自由传播的类Unix系统,是一个基于Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的工具软件、应用程序和网络协议。它支持32位和64位硬件,是一个性能稳定的多用户网络操作系统。严格来讲,Linux这个词本身只表示Linux内核,联合GNU 组织里的各种强大的应用软件而组成的操作系统。 从Linux的诞生至今,…

    Linux干货 2016-10-30

评论列表(1条)

  • renjin
    renjin 2017-04-28 11:03

    主要对linux的分区管理进行了详细的介绍,内容总结的很详细,排版也很好,可以把博客的数量再往上提一下了!