低级格式化:创建磁盘


高级格式化:创建文件系统


MBR: Master Boot Record

512bytes:

446bytes: bootloader

64: 分区表, 其中每16bytes标示一个分表,最多4主分区;

2:5A


扩展分区:

再次划分为逻辑分区


Linux:

sda[1-]

sda1:

sda2

sda3

sda4

sda5: 第一个逻辑分区




fdisk, sfdisk, part


fdisk <= 15分区


fdisk -l [DEVICE]


fdisk [DEVICE]

交互式命令:

d: 删除一个分区

n: 新建一个分区

p: 显示当前的分区信息

w: 保存退出

q: 不保存退出

l: 各分区类型所对应的System ID;

83:Linux

82:Linux Swap,交换分区

8e: LVM

fd: Soft Raid

t: 修改指定分区的System ID;


查看内核识别的分区信息:

cat /proc/partitions


RHEL5让内核重新读取硬盘分区表:

partprobe [DEVICE]


RHEL6让内核重新读取硬盘分区表:

partx -a [PARTITION] DEVICE



下一步:格式化分区,用于创建文件系统


Linux, mkfs

mkfs -t fstype /dev/part



RHEL5:ext3

RHEL6:ext4


mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4

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

mkfs -t ext2 = mkfs.ext2 = mke2fs = mke2fs -t ext2



配置文件:/etc/mke2fs.conf,用于设定默认特性,及各文件系统的特有的特性;


mke2fs -t {ext2|ext3|ext4}

-b {1024|2048|4096}:块大小

块大小取决CPU对内存页框大小的支持,x86系统默认页框大小为4K;

-L label: 设定卷标

-m #: 预留给管理使用的块所占据总体空间的比例;

-r #:  预留给管理使用的块的个数;

-E: 设定文件系统的扩展属性;



tune2fs

-l: 显示文件系统超级块信息;

-L label:重新设定卷标;

-m #: 调整预留给管理使用的块所占据总体空间的比例;

-r #: 调整预留给管理使用的块个数;

-o:设定挂载默认选项

-O: 设定文件系统默认特性

-E: 调整文件系统的扩展属性


e2label: 显示或设定卷标;

e2label DEVICE [Volume_label]



要显示块大小:

tune2fs -l DEVICE | grep "Block size"



blkid DEVICE: 显示设备的UUID、文件系统类型及卷标;


挂载:mount

mount [-t fstype] DEVICE MOUNT_POINT

mount [-t fstype] LABEL="卷标"  MOUNT_POINT

mount [-t fstype] UUID="UUID"  MOUNT_POINT


mount: 当前系统挂载的所有设备;


umount DEVICE

umount MOUNT_POINT


挂载之后,原有数据的会被隐藏,因此不能挂载到系统常用目录上;

卸载之时,要确保没有进程正在访问挂载的设备;否则,无法卸载;


/etc/fstab: 系统开机会自动挂载的文件系统;



fdisk -l [/dev/sda]

globbing,


fdisk -l /dev/[hs]d[a-z]


mount: 将某文件系统关联至根文件系统上来

FileSystem: 一个软件,内核中实现


Windows:

NTFS, FAT32



Linux: VFS (Virtual File System)

ext, xfs,


iso9660

nfs, cifs

ext2, ext3, ext4, xfs, jfs, reiserfs, vfat

GFS, GFS2, OCFS2


mount -t fstype [options] DEVICE MOUNT_POINT

DEVICE:

设备文件:/dev/sda1, /dev/hdb2

卷标:LABEL=“label”

UUID: UUID="uuid"

MOUNT_POINT:


blkid PARTITION


mkfs -t [fstype] PARTITION

要点:

1、文件系统必须被内核支持才能使用,即内核有相应的内核模块,或者已经将之整合进内核;

2、要有相应文件系统创建工具,这通常是mkfs.fstype


mkfs -t ext2 = mkfs.ext2 = mke2fs

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

mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4


mkfs -t xfs = mkfs.xfs


mke2fs

-t

-L

-m

-b

-E


tune2fs

-l


e2label


umount


mount

-o: 用于指定挂载选项,常用的挂载选项

ro: 只读挂载;

rw: 读写,默认即为读写;

noatime: 关闭 更新 访问时间;

auto: 是否能够由“mount -a”挂载;

defaults:相当于rw, suid, dev, exec, auto, nouser, async, and relatime

sync: 同步写入

async:异步写入

dev:

remount: 重新挂载

loop: 本地回环设备;


mount -o remount,other_options DEVICE


cdrom --> sr0

cdrom --> hdc


mount -o loop,other_options DEVICE MOUNT_POINT: 用于挂载回环设备;


-n: 挂载文件系统时,不更新/etc/mtab文件;

-r: 相当于“-o ro”, 只读挂载;


fuser [MOUNT_POINT]:查看正在访问某挂载点的进程;

fuser -km [MOUNT_POINT]: 强行杀死正在访问此挂载点的进程;




/etc/fstab

挂载的设备:

设备文件、卷标、UUID

挂载点:

文件系统类型:ext2, ext3, ...

挂载选项:defaults表示使用默认选项,多个选项彼此间逗号分隔;

转储频率:

0: 从不备份;

1:每日备份;

2:

自检次序:

0:不检测;

1:第一个检测;一般只有根文件系统被第一个检测;

2

9


mount -a: 挂载 /etc/fstab所有支持auto挂载选择的文件系统


Linux的交换分区:swap


必须是独立分区,独立文件系统;


交换分区多大?

科学计算类的服务器:交换内存可以尽可能大,比如为物理内存的2倍;

应用程序类的服务器:交换内存尽可能小,比如只给1G;


物理内存小于等于2G, swap=memory*2

2G<memory<4G, swap=memory*1.5

memory>4G, swap=4G


如何内存大小:

free

-m: 空间大小换算为MB

-g: 空间大小换算为GB

shared: 共享内存

buffer: 缓冲

cached: 缓存


创建交换分区:

mkswap DEVICE

-L label


启用交换分区:

swapon DEVICE:启用指定交换分区;

swapon -a: 启用所有交换分区


禁用交换分区:

swapoff DEVICE

swapoff -a


开机自动启用交换分区,可定义于/etc/fstab

DEVICE  swap   swap   defaults 0 0

挂载点:swap

文件系统类型:swap