linux基础学习-(磁盘管理、分区挂载、SWAP)

1、磁盘结构

2、分区类型

3、管理分区、文件系统以及挂载设备

4、管理虚拟内存SWAP

一、磁盘结构(机械硬盘)

CHS寻址模式将硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。

heads:磁头

tracks:磁道

cylinder: 柱面

sector: 扇区,512bytes(最小的存储单位)

1、其中:每个盘面有两面,两面都可以存储数据,片两面都能存数据,要读取它,必须有磁头(head),所以,每一个面,都有一个磁头,一张盘片就有两个磁头,每个盘面安装圆心划分了不同的类似跑道的存储区域,称为磁道(track),盘面的数据从最外面开始存储,最外面额是0磁道

相同磁道的立体空间,构成了柱面(cylinder),每个磁盘又可以划分为多个区域,称为扇区(sector),磁盘的最小存储单位是扇区,一个扇区的大小是512字节,一个磁道由63个

2、centos6按照柱面划分分区,centos7按照扇区划分分区

3、知道了磁头数、柱面数、扇区数,就可以很容易地确定数据保存在硬盘的哪个位置。也很容易确定硬盘的容量,

其计算公式是:  硬盘容量=磁头数×柱面数×扇区数×512字节 

二、分区类型

1、MBR: Master Boot Record,1982年提出的概念,使用32位表示扇区数,分区不超过2T(2^32/1024/1024=2T)

通常一个磁盘的0磁道0扇区:512bytes存放着磁盘的MBR信息,其中:

446bytes: boot loader(windows没有管理器,linux称为grub2、lilo)

64bytes:分区表

16bytes: 标识一个分区

4个主分区;3主分区+1扩展(N个逻辑分区)

2bytes: 55AA

因此,备份一个磁盘的MBR文件信息方法(此方法只能备份主分区和扩展分区表信息,不能备份逻辑分区信息)

dd if=/dev/sda of=/mnt/usb/MBRbackup bs=1 count=512

恢复备份:

dd if=/dev/usb/MBRbackup of=/dev/sda

MBR分区的磁盘逻辑结构:

linux基础学习-(磁盘管理、分区挂载、SWAP)

 

2、GPT:GUID patition table 

支持128个分区,使用64位,支持8Z(512Byte/block )64Z (4096Byte/block)使用128位UUID 表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位,使用UEFI (统一扩展固件接口)硬件支持GPT

三、管理分区

linux基础学习-(磁盘管理、分区挂载、SWAP)

 linux基础学习-(磁盘管理、分区挂载、SWAP)

linux基础学习-(磁盘管理、分区挂载、SWAP)

 

 

(1)硬盘的使用流程;

低格(厂商设置)–>分区(fdisk)–>高格(创建文件系统类型)(mkfs)–>挂载(mount)–>正常使用 

使用fdisk创建旧硬盘的分区后,虽然物理配置已经保存,但内存还没有更新识别,需要内存刷新识别使用命令:partprobe,创建新硬盘分区则会自动更新

(2)分区(fdisk)

fdisk:查看和修改分区表信息

fdisk DEVICE

fdisk /dev/sda 对磁盘/dev/sda进行分区操作

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

n: 创建新分区

e: 扩展分区

p: 主分区

d: 删除一个分区

w: 保存退出

q: 不保存退出

t: 修改分区类型

L: 

l: 显示所支持的所有类型

(3)创建文件系统(mkfs)

文件系统类型:

Linux文件系统: ext2, ext3, ext4, xfs(SGI), btrfs(Oracle), reiserfs, jfs(AIX), swap

swap: 交换分区

光盘:iso9660

Windows:fat32, ntfs

Unix: FFS(fast), UFS(unix), JFS2

网络文件系统:NFS, CIFS

集群文件系统:GFS2, OCFS2(oracle)

分布式文件系统:ceph, moosefs, mogilefs, glusterfs, Lustre

RAW:未经处理或者未经格式化产生的文件系统

目前linux主流的文件系统还是ext系统和xfs

相关命令:mkfs、blkid、【mke2fs、e2lable、dumpe2fs、tune2fs:针对ext系统的命令】

mkfs -t ext3 /dev/sda6

mke2fs:ext系列文件系统专用管理工具

-t {ext2|ext3|ext4}

-b {1024|2048|4096}

-L 'LABEL'

-j: 相当于-t ext3

-i#: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小

-N #:为数据空间创建个多少个inode

-m #: 默认5%,为管理人员预留空间占总空间的百分比

-O FEATURE[,…]:启用指定特性

-O ^FEATURE:关闭指定特性

mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

blkid:块设备属性信息查看

blkid[OPTION]… [DEVICE]

-U UUID: 根据指定的UUID来查找对应的设备

-L LABEL:根据指定的LABEL来查找对应的设备

e2label:管理ext系列文件系统的LABEL

# e2label DEVICE [LABEL]

tune2fs:重新设定ext系列文件系统可调整参数的值

-l:查看指定文件系统超级块信息;super block

-L 'LABEL':修改卷标

-m #:修预留给管理员的空间百分比

-j: 将ext2升级为ext3

-O: 文件系统属性启用或禁用,–O ^has_journal

-o: 调整文件系统的默认挂载选项,–o ^acl

-U UUID: 修改UUID号;

(4)挂载mount

挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为

卸载:为解除此关联关系的过程

注意:默认是只有管理员root才有挂载的权限

挂载方法:

mount DEVICE MOUNT_POINT

mount:通过查看/etc/mtab文件显示当前已挂载的所有设备

-t vsftype:指定要挂载的设备上的文件系统类型

-r: readonly,只读挂载

-w: read and write, 读写挂载

-n: 不更新/etc/mtab,相当于#mount

-a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)

-L 'LABEL': 以卷标指定挂载设备

-U 'UUID': 以UUID指定要挂载的设备

-B, –bind: 绑定目录到另一个目录上

-o options:(挂载文件系统的选项),多个选项使用逗号分隔

async:异步模式

sync:同步模式,内存更改时,同时写磁盘

atime/noatime:包含目录和文件

diratime/nodiratime:目录的访问时间戳

auto/noauto:是否支持自动挂载,是否支持-a选项

exec/noexec:是否支持将文件系统上运行应用程序

dev/nodev:是否支持在此文件系统上使用设备文件

suid/nosuid:不否支持suid和sgid权限

remount:重新挂载

ro:只读

rw:读写

user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载

acl:启用此文件系统上的acl功能

loop:挂载本地文件做成的分区

Defaults:相当于rw, suid, dev, exec, auto, nouser, async

卸载时,有用户正在使用该挂载分区,则无法正常卸载

fuser:查看正在访问的进程和操作

-v:查看

-mk:强制剔除正在访问的进程

演示过程:

        [root@Centos7 ~]# fdisk -l 【查看目前的分区情况】
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00072f47
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      391167      194560   83  Linux
/dev/sda2          391168    98045951    48827392   83  Linux
/dev/sda3        98045952   105857023     3905536   82  Linux swap / Solaris
/dev/sda4       105857024   419430399   156786688    5  Extended
/dev/sda5       105859072   144920575    19530752   83  Linux
[root@Centos7 ~]# fdisk /dev/sda 
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n 【新建分区】
All primary partitions are in use
Adding logical partition 6 
First sector (144922624-419430399, default 144922624): 
Using default value 144922624
Last sector, +sectors or +size{K,M,G} (144922624-419430399, default 419430399): +10G 【10G】
Partition 6 of type Linux and of size 10 GiB is set
Command (m for help): w 【保存新建分区信息】
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@Centos7 ~]# fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00072f47
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      391167      194560   83  Linux
/dev/sda2          391168    98045951    48827392   83  Linux
/dev/sda3        98045952   105857023     3905536   82  Linux swap / Solaris
/dev/sda4       105857024   419430399   156786688    5  Extended
/dev/sda5       105859072   144920575    19530752   83  Linux
/dev/sda6       144922624   165894143    10485760   83  Linux
[root@Centos7 ~]# 
[root@Centos7 ~]# cat /proc/partitions 
major minor  #blocks  name
   8        0  209715200 sda
   8        1     194560 sda1
   8        2   48827392 sda2
   8        3    3905536 sda3
   8        4          1 sda4
   8        5   19530752 sda5
  11        0    7587840 sr0
[root@Centos7 ~]# partprobe /dev/sda 【通知内核更新】
[root@Centos7 ~]# cat /proc/partitions 
major minor  #blocks  name
   8        0  209715200 sda
   8        1     194560 sda1
   8        2   48827392 sda2
   8        3    3905536 sda3
   8        4          0 sda4
   8        5   19530752 sda5
   8        6   10485760 sda6
  11        0    7587840 sr0
[root@Centos7 ~]# mkfs -t ext3 /dev/sda  【创建文件系统】
/dev/sda   /dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sda5  /dev/sda6  
[root@Centos7 ~]# mkfs -t ext3 /dev/sda6
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621440 blocks
131072 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

四、管理虚拟内存SWAP

(1)SWAP分区:模拟内存,当物理内存不足时,进程需要内存资源是,内存会把一部分没有在用的进程分页挪到硬盘的模拟内存中,腾出空间被现在需要使用内存资源的进程

即其作用是可以允许内存过载使用,windows系统也有类似的机制

由于虚拟内存空间是建立在硬盘之上,所以其速度和性能会大打折扣

运行速度:CPU(1纳秒)–>缓存(一级缓存,二级..)(10纳秒)–>内存(10毫秒)–>硬盘(秒)

(2)linux的swap和windows的虚拟内存空间区别:

区别就是windows即使物理内存没有用完也会去用到虚拟内存 ,

而Linux不一样 Linux只有当物理内存用完的时候才会去动用虚拟内存(即swap分区)这就是两者的区别。

(3)free:查看物理内存和虚拟内存的使用情况

		[root@Centos7 shells]# free					total        used        free      shared  buff/cache   available		Mem:        1868692      317020     1189976        9224      361696     1370028		Swap:       3905532           0     3905532

(4)dd:convert and copy a file,转换并复制文件,与cp命令相似,只是用法格式有不一样,dd复制的是数据流,工作在vfs之下

if:文件来源

of:数据存储目的

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)

【】/dev/zero:不断的往外输出000,与/dev/null作用相反

(5)/etc/fstab:系统启动自动挂载的文件系统配置

[root@Centos7 shells]# free
total        used        free      shared  buff/cache   available
Mem:        1868692      317020     1189976        9224      361696     1370028
Swap:       3905532           0     3905532

空格分开六个字段【】:

设备(名、路径、UUID):挂载点:文件系统类型:挂载选项(使用mount -o 命令时的附加选项):转储频率(备份频率,每多少天做一次完成备份):文件系统检测次序(只有根可以是1,0表示不检查) 

Defaults:相当于rw, suid, dev, exec, auto, nouser, async

原创文章,作者:麦德良,如若转载,请注明出处:http://www.178linux.com/42405

(0)
麦德良麦德良
上一篇 2016-09-01
下一篇 2016-09-01

相关推荐

  • 常用RAID级别浅析

    简介:    RAID为独立冗余磁盘阵列的简称,它可以通过软件或硬件技术把多个较小的磁盘整合成一个较大的磁盘。从而实现较大的 磁盘存储,容错及数据保护功能,较快的数据读写等功能. 实现方式:      硬件实现方式:通过bios参数调整来实现      软件实…

    2017-06-17
  • linux文件管理类、bash的基础命令以及习题。

    文件管理工具:cp, mv, rm cp命令:copy 源文件:目标文件; 单源复制:cp [OPTION]… [-T] SOURCE DEST 多源复制:cp [OPTION]… SOURCE… DIRECTORY         cp&nb…

    Linux干货 2016-11-05
  • 单引号,双引号,反引号的作用(首篇)

    哈哈哈!这是我的博客生涯的开始,也是我学习Linux的开始,所以我将励志成为一名老司机带你装X带你飞。 1.首先是三兄弟中的单引号,它的作用只是单纯的呈现出自己所包含的文字并不能执行其中的命令,所以它也是三兄弟中最笨的那个,作用单一,简单。 2,再来介绍介绍双引号,他的作用和单引号大同小异,它能包含单引号,反引号,以及除了执行以$和\的字符为首的函数能认识之…

    2017-07-11
  • 权限管理和字符匹配示例

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限 cp -r /etc/skel /home/tuser1 chmod -R 700 tuser1 2、编辑/etc/group文件,添加组hadoop hadoop:x:999 3、手动编辑/etc/passwd文件新增一行,…

    2017-12-25
  • lvs的四种调度类型和调度算法介绍

    lvs是linux内核级的负载均衡解决方案,作为netfilter的补充套件,其工作在INPUT hook上。 相比nginx等负载均衡解决方案的差异如下: lvs工作于内核空间,不受用户空间套接字和端口数量的限制,而且所有调度工作在内核空间完成,效率更高; nginx为七层负载均衡器,虽然通过stream模块也可以做到四层负载均衡,但是受到套接字数量限制,…

    Linux干货 2017-06-25
  • 进程和计划任务

    进程概念 内核的功用:进程管理,文件系统,网络功能,内存管理,驱动程序,安全功能等 Process:运行中的程序的一个副本,是被载入内存的一个指令集和     进程ID(Process ID,PID)号码被用来标记各个进程     UID,GID和SELinux语境决定对文件系统…

    Linux干货 2016-09-13