Linux系统管理-磁盘管理1
1、磁盘结构
扇区sector: 每个扇区存储512byte
磁道track: 每个磁道划分63个扇区
磁头head: 逻辑磁头(盘面)数设为255个
柱面cylinder: 一个柱面的大小=255X63X512byte=8M(Linux分区单位)
硬盘或分区的容量=柱面大小X柱面数
2、硬盘启动过程
识别硬盘--->规划分区--->格式化--->挂载--->读写数据
3、常见分区模式
1>MBR(Master Boot Record)分区
分区方式:第一扇区(521bit)+4个主分区(3个主分区+1个扩展分区)+若干逻辑分区
缺点:最多4个主分区、最大支持2.2TB
2>GPT (GUID Partition Table)
优势:可以划分多个分区,最大支持18EB(1EB=1024PB=1024X1024TB=1024X1024X1024GB)
注:MBR分区与GPT分区不能共存
4、磁盘分区工具
fdisk------>支持MBR分区
parted------>支持GPT分区、MBR分区
1>fdisk工具
fdisk -l 显示系统分区信息
fdisk /dev/sdb 对磁盘sdb进行分区,操作后进入以下界面
输入m或者help显示常用命令及帮助信息
创建主分区2G:
n(创建新分区)--->p(创建主分区)--->1(输入分区号)--->1(输入分区的起始柱面,一般为上一分区的结束柱面)--->+2G(输入分区大小)--->w(保存并退出)--->partprobe /dev/sdb(获取新的分区表)--->ls /dev/sdb*(查看以创建的分区)
创建磁盘分区时的ID号即为磁盘的分区标识,每个分区的类型都通过不同的ID号来区分的,通过l查看已有的ID号,通过t可以修改分区的ID
创建扩展分区10G:MBR分区只能创建1个扩展分区
n(创建新分区)--->e(创建主分区)--->2(输入分区号)--->263(输入分区的起始柱面,一般为上一分区的结束柱 面)--->+10G(输入分区大小)--->w(保存并退出)--->partprobe /dev/sdb(获取新的分区表)--->ls /dev/sdb*(查看以创建的分区)
创建逻辑分区2G:逻辑分区创建在扩展分区内,总的分区大小不能超过扩展分区大小
n(创建新分区)--->l(创建主分区)--->263(输入分区的起始柱面,一般为上一分区的结束柱 面)--->+2G(输入分区大小)--->w(保存并退出)--->partprobe /dev/sdb(获取新的分区表)--->ls /dev/sdb*(查看以创建的分区)
2>parted分区工具
4.2.1>查看分区表:parted /dev/sda print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 316MB 315MB primary ext4 boot
2 316MB 19.4GB 19.0GB primary ext4
3 19.4GB 21.5GB 2114MB primary linux-swap(v1)
4.2.2>进入交互模式:parted /dev/sda
GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
4.2.3>常用操作
mktable :创建分区表,即创建磁盘分区格式
mkpart :创建磁盘分区
rm +分区号 :删除分区
quit :保存并退出
4.2.4>创建磁盘分区过程
mktable[msdos|gpt]--->mkpart[primary|extended|logical]--->[ext4|vfat]--->开始柱面--->终止柱面
创建GPT分区
parted /dev/sdb
(parted) mktable gpt [建立GPT分区表]
mkpart primary ext4 0 4G [建立第一个4G大小的主分区]
mkpart primary ext4 4G 8G [建立第二个4G大小的主分区]
mkpart primary ext4 8G 100%[将剩余空间作为最后一个分区]
分区表如下:
Number Start End Size File system Name Flags
1 17.4kB 4000MB 4000MB primary
2 4000MB 8000MB 3999MB primary
3 8000MB 21.5GB 13.5GB primary
5、获取新的分区表
创建完磁盘分区后可以通过一下方法获取新的分区表
1>partx -a /dev/sdb
2>partprobe /dev/sdb
3>reboot
6、格式化磁盘
将磁盘创建完分区后需要格式化磁盘,对磁盘赋予文件系统后磁盘才能够使用
mkfs.文件系统 [磁盘分区]:mkfs.ext4 /dev/sdb1
7、swap分区
Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是 Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。当系统的物理内存不够用的时候,就需要将物 理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到 Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
若要将一个分区作为swap分区则需先将这个分区格式化为swap分区
mkswap /dev/sdb1
启用/dev/sdb1到swap分区
swapon /dev/sdb1
停用/dev/sdb1作为swap分区
swapoff /dev/sdb1
查看swap分区
free -m
swapon -s
利用文件创建swap分区
dd if=/dev/zero(源设备) of=/tmp/swap.db(目标设备) bs=1M(块大小) count=1024(块数量) 创建1G大小的文件
mkswap /tmp/swap.db 格式化swap分区
swapon /tmp/swap.db 加载swap分区
swapon -s 查看swap分区
Filename Type Size Used Priority
/dev/sda3 partition 2064380 6500 -1
/dev/sdb1 partition 3906228 0 -2
/tmp/swap.db file 1048572 0 -3