乱世风云剑之磁盘分区格式化
在进行磁盘分区格式化之前,先介绍一些基础常识,虽说是常识,但隔行如隔山,外行人看了,不一定懂。不扯了,步入正题。
磁盘分区格式化是相对于硬盘而言的,硬盘属于随机存储设备,在我们的电脑上有各种硬盘的接口,而接口有可以归纳为两大类,串行接口和并行接口。
串行接口(Serialport)又称“串口”,主要用于串行式逐位数据传输。常见的有一般电脑应用的RS-232(使用25针或9针连接器)和工业电脑应用的半双工RS-485与全双工RS-422。
并行接口是一种增强了的双向并行传输接口。优点是不需在PC中用其它的卡,无限制连接数目(只要你有足够的端口),设备的安装及使用容易,最高传输速度为1.5Mbps。缺点是当传输距离较远、位数又多时,导致了通信线路复杂且成本提高。
Linux,/dev/设备文件
IDE,ATA:/dev/hd[a-z]------并口
IDE:Master,Slave
第一个IDE控制接硬盘:
第二个IDE控制接光驱:hdc
SCSI,SAS,SATA,USB:/dev/sd[a-z]------串口
/dev/sda,/dev/sdb
Windows支持的文件系统主要有FAT32和NTFS
Linux支持的文件系统主要有MINIX、XIAFS、EXT、EXT2、ISO9660、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SYSV、SMBFS、NCPFS
RAW:裸设备
低级格式化:创建磁盘
高级格式化:创建文件系统
MBR:MasterBootRecordmbr是硬盘的主引导记录,属于引导区。
含有512bytes:
前446bytes:bootloader
中间64:分区表,其中每16bytes标示一个分表,最多4主分区;
最后两个字节固定为55AA,(magicnumber)被称作魔数
以SCSI接口为例,若是硬盘插在了第一个插槽,它的各个分区就可以这样表示
Sda1,sda2,sda3,sda4.....
若是插在了第二个插槽,则可以这样表示
Sdb1,sdb2,sdb3,sdb4......
以此类推。
分区与格式化
先用fdisk分区,分区完成后再用mkfs格式化并创建文件系统,挂载,磁盘就能使用啦。
由于mbr主引导记录里的主分区表只有64bytes,而每个主分区在分区表里只能占16bytes,所以,硬盘上最多只能有四个主分区。
fdisk是用来磁盘分区的程序,它采用传统的问答式界面,而非类似DOSfdisk的cfdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。
fdisk-l[DEVICE]
参数
-b指定每个分区的大小。
-l列出指定的外围设备的分区表状况。
-s将指定的分区大小输出到标准输出上,单位为区块。
-u搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址。
-v显示版本信息。
fdisk[DEVICE]
交互式命令:
d:删除一个分区
n:新建一个分区
p:显示当前的分区信息
w:保存退出
q:不保存退出
l:各分区类型所对应的SystemID;
83:Linux
82:LinuxSwap,交换分区
8e:LVM
fd::SoftRaid
t:修改指定分区的SystemID;
fdisk-l[/dev/sda]
fdisk-l/dev/[hs]d[a-z]
[root@station110 ~]# fdisk -l /dev/sda
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006e97b
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 7859 62914560 8e Linux LVM
/dev/sda4 7859 15665 62708728+ 5 Extended
/dev/sda5 7859 10470 20979859+ 83 Linux
/dev/sda6 10471 15665 41728806 83 Linux
[root@station110 ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help):
删除磁盘分区是,注意系统原先存在的主分区不要误删,否则,系统会直接崩溃Command (m for help): d
Partition number (1-6): 4
Command (m for help): p
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006e97b
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 7859 62914560 8e Linux LVM
直接创建扩展分区Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 4
First cylinder (7859-15665, default 7859):
Using default value 7859
Last cylinder, +cylinders or +size{K,M,G} (7859-15665, default 15665):
Using default value 15665
Command (m for help): p
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006e97b
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 7859 62914560 8e Linux LVM
/dev/sda4 7859 15665 62708728+ 5 Extended
创建逻辑分区
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (7859-15665, default 7859):
Using default value 7859
Last cylinder, +cylinders or +size{K,M,G} (7859-15665, default 15665): +20G
Command (m for help): P
Disk /dev/sda: 128.8 GB, 128849018880 bytes
255 heads, 63 sectors/track, 15665 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006e97b
Device Boot Start End Blocks Id System
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 7859 62914560 8e Linux LVM
/dev/sda4 7859 15665 62708728+ 5 Extended
/dev/sda5 7859 10470 20979859+ 83 Linux
格式化磁盘分区
[root@station110 ~]# mke2fs -b 1024 -m 3 -L music /dev/sda5
创建挂载点,进行挂载[root@station110 ~]# mkdir /media/music
[root@station110 ~]# mount /dev/sda5 /media/music
取消挂载
[root@station110 ~]# umount /dev/sda5
只读挂载[root@station110 ~]# mount -o ro /dev/sda6 /media/book
[root@station110 ~]# mount -r /dev/sda6 /media/book
若有其他用户正在访问某个挂载点,则无法卸载该挂载点[root@station110 ~]# umount /dev/sda6
umount: /media/book: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
查看是谁正在访问此挂载点
the device is found by lsof(8) or fuser(1))
[root@station110 ~]# fuser /media/book
/media/book: 3100c
fuser-km[MOUNT_POINT]:强行杀死正在访问此挂载点的进程;root@station110 ~]# fuser -km /media/book
/media/book: 3100c
查看内核识别的分区信息:
cat/proc/partitionsmajor minor #blocks name
8 0 125829120 sda
8 1 204800 sda1
8 2 62914560 sda2
8 4 1 sda4
8 5 52435129 sda5
8 6 10273536 sda6
8 16 20971520 sdb
253 0 20971520 dm-0
253 1 2097152 dm-1
253 2 10485760 dm-2
253 3 20971520 dm-3
RHEL5让内核重新读取硬盘分区表:
partprobe[DEVICE]
RHEL6让内核重新读取硬盘分区表:
partx-a[PARTITION]DEVICE
下一步:格式化分区,用于创建文件系统
Linux,mkfs
mkfs-tfstype/dev/part
RHEL5:ext3
RHEL6:ext4
mkfs-text4=mkfs.ext4=mke2fs-text4
mkfs-text3=mkfs.ext3=mke2fs-j=mke2fs-text3
mkfs-text2=mkfs.ext2=mke2fs=mke2fs-text2
配置文件:/etc/mke2fs.conf,用于设定默认特性,及各文件系统的特有的特性;
mke2fs-t{ext2|ext3|ext4}
-b{1024|2048|4096}:块大小
块大小取决CPU对内存页框大小的支持,x86系统默认页框大小为4K;
-Llabel:设定卷标
-m#:预留给管理使用的块所占据总体空间的比例;
-r#:预留给管理使用的块的个数;
-E:设定文件系统的扩展属性;
tune2fs
-l:显示文件系统超级块信息;
-Llabel:重新设定卷标;
-m#:调整预留给管理使用的块所占据总体空间的比例;
-r#:调整预留给管理使用的块个数;
-o:设定挂载默认选项
-O:设定文件系统默认特性
-E:调整文件系统的扩展属性
e2label:显示或设定卷标;
e2labelDEVICE[Volume_label]
要显示块大小:
tune2fs-lDEVICE|grep"Blocksize"
blkidDEVICE:显示设备的UUID、文件系统类型及卷标;
挂载:mount
mount[-tfstype]DEVICEMOUNT_POINT
mount[-tfstype]LABEL="卷标"MOUNT_POINT
mount[-tfstype]UUID="UUID"MOUNT_POINT
mount:当前系统挂载的所有设备;
umountDEVICE
umountMOUNT_POINT
挂载之后,原有数据的会被隐藏,因此不能挂载到系统常用目录上;
卸载之时,要确保没有进程正在访问挂载的设备;否则,无法卸载;
mount
-o:用于指定挂载选项,常用的挂载选项
ro:只读挂载;
rw:读写,默认即为读写;
noatime:关闭更新访问时间;
auto:是否能够由“mount-a”挂载;
defaults:相当于rw,suid,dev,exec,auto,nouser,async,andrelatime
sync:同步写入
async:异步写入
dev:
remount:重新挂载
loop:本地回环设备;
mount-oremount,other_optionsDEVICE
cdrom-->sr0
cdrom-->hdc
mount-oloop,other_optionsDEVICEMOUNT_POINT:用于挂载回环设备;
-n:挂载文件系统时,不更新/etc/mtab文件;
-r:相当于“-oro”,只读挂载;
fuser[MOUNT_POINT]:查看正在访问某挂载点的进程;
fuser-km[MOUNT_POINT]:强行杀死正在访问此挂载点的进程;
/etc/fstab/etc/fstab所有支持auto挂载选择的文件系统
/etc/fstab:系统开机会自动挂载的文件系统;[root@station110 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Jul 17 16:24:23
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/vg0-root / ext4 defaults 1 1
UUID=44e43d1d-d8ad-4be6-b9a2-d4314df246c3 /boot ext4 defaults 1 2
/dev/mapper/vg0-usr /usr ext4 defaults 1 2
/dev/mapper/vg0-var /var ext4 defaults 1 2
/dev/mapper/vg0-swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
挂载的设备:五列信息分别是
设备文件、卷标、UUID
挂载点:
文件系统类型:ext2,ext3,...
挂载选项:defaults表示使用默认选项,多个选项彼此间逗号分隔;
转储频率:
0:从不备份;
1:每日备份;
2:
自检次序:
0:不检测;
1:第一个检测;一般只有根文件系统被第一个检测;
2
9
Linux的交换分区:swap
必须是独立分区,独立文件系统;
交换分区多大?
科学计算类的服务器:交换内存可以尽可能大,比如为物理内存的2倍;
应用程序类的服务器:交换内存尽可能小,比如只给1G;
物理内存小于等于2G,swap=memory*2
2G
memory>4G,swap=4G
如何查看内存状态:
free
-m:空间大小换算为MB
-g:空间大小换算为GB
shared:共享内存
buffer:缓冲
cached:缓存
创建交换分区:
mkswapDEVICE
-Llabel
启用交换分区:
swaponDEVICE:启用指定交换分区;
swapon-a:启用所有交换分区
禁用交换分区:
swapoffDEVICE
swapoff-a
开机自动启用交换分区,可定义于/etc/fstab
DEVICEswapswapdefaults00
挂载点:swap
文件系统类型:swap