Linux入门之 磁盘管理与挂载
在我们使用计算机或者是服务器时,总会需要接入外部存储的时候,正如我们使用的移动硬盘、U盘、接入手机等,就是一个接入外部存储的过程。上述这些在接入Windows时我们都能看到系统会自动安装驱动,接着就可以直接使用了。但是在LInux下,我们若想手动接入一块硬盘,有四个步骤:
1.磁盘分区 2.格式化 3.挂载 4.存储和读取
磁盘
磁盘是指利用磁记录技术存储数据的存储器。磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。
早期计算机使用的磁盘是软磁盘(soft disk,简称软盘),如今常用的磁盘是硬磁盘(hard disk,简称硬盘)。
软盘 Soft Disk
硬盘 Hard Disk
硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息。在DOS中每扇区是128×2的2次方=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘中,不同盘片相同半径的磁道所组成的圆柱称为柱面。磁道与柱面都是表示不同半径的圆,在许多场合,磁道和柱面可以互换使用,我们知道,每个磁盘有两个面,每个面都有一个磁头,习惯用磁头号来区分。扇区,磁道(或柱面)和磁头数构成了硬盘结构的基本参数,帮这些参数可以得到硬盘的容量,基计算公式为:
存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数
硬盘结构
1. MBR(主引导记录)位于硬盘第一个物理扇区(绝对扇区)柱面0,磁头0,扇区1处。由于DOS是由柱面0,磁头1,扇区1开始,故MBR不属于DOS扇区,DOS不能直接访问。
2. MBR中包含硬盘的主引导程序和硬盘分区表。分区表有4个分区记录区。记录区就是记录有关分区信息的一张表。它从主引导记录偏移地址01BEH处连续存放,每个分区记录区占16个字节。
磁盘的表示方法
/dev/sda1
sd 代表磁盘接口类型 USB SATA SAS等接口 IDE 用hd表示
a b c 磁盘的顺序
1 2 3 4磁盘中的分区号
磁盘的分区号只有1-4,但是如:sda1 中的数字标识可不止1-4,也有5以上的,如sdb5、sdb6等,这是表示为逻辑驱动器。(可理解为1-4为分区,5及5以上为逻辑驱动器)
磁盘分区
计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区。
主分区是能够安装操作系统,能够进行计算机启动的分区,这样的分区可以直接格式化,然后安装系统,直接存放文件。
扩展分区是将一个硬盘驱动器分成若干个逻辑驱动器,把硬盘连续的区块当做一个独立的磁硬使用。理论上,逻辑驱动器是无上限的。
一块硬盘最多可被分为四个区,也就是说这四个分区的大小就是硬盘的大小。这四个分区可定义为主分区或扩展分区,主分区可以直接格式化、安装系统或直接存放文件。扩展分区不能直接使用,应在其内部划分若干个逻辑驱动器后才能使用。
扩展分区不能直接格式化,我们只能格式化扩展分区里的逻辑驱动器。
此处须注意理解扩展分区与逻辑驱动器的概念。
fdisk命令
fdisk磁盘分区命令
fidsk [命令选项] [参数]
命令选项
-l list 列出磁盘分区
-u 与-l一起使用,显示分区的相关信息
fdisk /dev/sda 为/dev/sda分区
m :显示菜单和帮助信息
a :活动分区标记/引导分区
d :删除分区
l :显示分区类型
n :新建分区
p :显示分区信息
q :退出不保存
t :设置分区号
v :进行分区检查
w :保存修改
x :扩展应用,高级功能
命令缺点:单个分区不能超过2T 超过的话需要用parted命令
在linux 下大磁盘的分区不能再采用fdisk了,MBR分区表只支持2T磁盘,所以大于2T的磁盘必须使用GPT分区表。
parted磁盘分区命令
parted是Linux中另外一款常用的分区软件,它支持的范围也非常广,包括ext2、ext3、linux-swap等,当然也支持在Windows平台上使用。
NAME
parted - a partition manipulation program
SYNOPSIS
parted [options] [device [command [options...]...]]
OPTIONS
-h, --显示帮助信息
-i, --交互模式
-s, --脚本模式
-v, --显示版本
dumpe2fs命令 分区信息显示(dumpe2fs是查看ext2/ext3/ext4 文件系统信息的命令)
[root@localhost /]# dumpe2fs /dev/sdb2
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 441acc5d-7d3d-4081-9558-b739a258f5e2
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 22528
Block count: 90112
Reserved block count: 4505
Free blocks: 81615
Free inodes: 22517
First block: 1
Block size: 1024
Fragment size: 1024
Group descriptor size: 64
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 2048
Inode blocks per group: 256
Flex block group size: 16
Filesystem created: Tue Oct 8 09:52:36 2019
Last mount time: Wed Oct 9 07:15:36 2019
Last write time: Wed Oct 9 07:32:12 2019
Mount count: 7
Maximum mount count: -1
Last checked: Tue Oct 8 09:52:36 2019
Check interval: 0 (<none>)
Lifetime writes: 7529 kB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 128
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 541a67b8-fe59-4928-90f1-7a3261db2574
Journal backup: inode blocks
Journal features: journal_64bit
Journal size: 4096k
Journal length: 4096
Journal sequence: 0x00000007
Journal start: 0
blkid命令 查看磁盘分区 UUID信息
# blkid /dev/vda1
/dev/vda1: UUID="eb448abb-3012-4d8d-bcde-94434d586a31" TYPE="ext4"
磁盘格式化
mkfs命令
格式化(format)是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。格式化通常分为低级格式化和高级格式化。如果没有特别指明,对硬盘的格式化通常是指高级格式化,而对软盘的格式化则通常同时包括这两者。
格式化可理解为给分区安排一个文件系统,用于负责管理和存储数据的系统。
文件系统类型分 fat、ntfs、ext2、ext3、ext4、xfs、iso9660(光盘文件系统) 等
NAME
mkfs - build a Linux filesystem
SYNOPSIS
mkfs [options] [-t type] [fs-options] device [size]
-L 标签名
-V : 详细显示模式
-t : 给定档案系统的型式,Linux 的预设值为 ext2
-c : 在制做档案系统前,检查该partition 是否有坏轨
-l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
-b : 给定 block 的大小
关于block and inode dentry
实验发现这句话不对
block越大,inode越少,适合存储大文件的文件系统;block越小,inode越多,适合存储文件多而小的文件系统。
磁盘分区格式化
mkfs -t ext4 /dev/sdb2
挂载
Linux中的所有设备必须经过挂载才可以被用户使用,挂载的方式其实就是将某个设备挂到文件系统中的某个文件夹,就是将设备和文件夹映射在一起,对文件夹的操作就是对设备的操作。
mount命令 挂载
NAME
mount - mount a filesystem
SYNOPSIS
mount [-lhV]
mount -a [-fFnrsvw] [-t vfstype] [-O optlist]
mount [-fnrsvw] [-o option[,option]...] device|dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
OPTIONS
-a 挂载所有文件系统,参考文件 /etc/fstab
-l 显示当前挂载
-t 文件系统类型
-o 指定挂载权限
umount命令 卸载
NAME
umount - unmount file systems
SYNOPSIS
umount [-hV]
umount -a [-dflnrv] [-t vfstype] [-O options]
umount [-dflnrv] {dir|device}...
OPTIONS
-l, 懒惰卸载
自动挂载 /etc/fstab文件
设备 挂载点 文件系统 权限 备份 检测
第一列 设备源文件或者UUID
第二列 设备挂载点
第三列 文件系统类型
第四列
auto: 系统自动挂载,fstab默认就是这个选项
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 开机不自动挂载
nouser 只有超级用户可以挂载
ro 按只读权限挂载
rw 按可读可写权限挂载
user 任何用户都可以挂载
第五列是dump备份设置。
当其值设置为1时,将允许dump备份程序备份;设置为0时,忽略备份操作;
第六列是fsck磁盘检查设置。
其值是一个顺序。当其值为0时,永远不检查;而 / 根目录分区永远都为1。其它分区从2开始,数字越小越先检查,如果两个分区的数字相同,则同时检查。
##sdb
/dev/sdb2 /opt/data1 ext4 defaults 0 0
/dev/sdb5 /opt/data2 xfs ro 0 0
/dev/sdb6 /opt/data3 ext3 rw 0 0
在挂载完成后就可进行磁盘的使用了