本文共 4180 字,大约阅读时间需要 13 分钟。
为linux新增硬盘,需要先分区然后再对分区格式化,最后将分区mount后才能使用
磁盘分区
一个硬盘最多有4个主分区,多出的需要放在扩展分区,这些信息存储在磁盘的MBR(master boot recorder)即主引导区;
MBR位于硬盘的0轨,第一个要读取的硬盘区域,当MBR损坏时,整个硬盘就报销了;
硬盘分区格式化fdisk后,每个分区就是一个文件系统,而默认情况下每个文件系统开始的位置就是super block即超级块,存储该分区的metadata,包括block和inode总量,块与inode单个大小,文件系统载入时间以及有效位;
当超级块损坏时,该分区就报销了;
可通过dump2fs读取ext2/3的超级块及块组信息,需要root权限;
-h:只检查超级块
-b:查看坏块
查看linux支持的文件系统,可调用 ls -l /lib/modules/`uname –r`/kernel/fs;
$ ls -l /lib/modules/`uname -r`/kernel/fs
total 160
drwxr-xr-x 2 root root 4096 Dec 17 2007 autofs4
drwxr-xr-x 2 root root 4096 Dec 17 2007 cifs
drwxr-xr-x 2 root root 4096 Dec 17 2007 cramfs
drwxr-xr-x 2 root root 4096 Dec 17 2007 exportfs
drwxr-xr-x 2 root root 4096 Dec 17 2007 ext3
drwxr-xr-x 2 root root 4096 Dec 17 2007 fat
drwxr-xr-x 2 root root 4096 Dec 17 2007 freevxfs
drwxr-xr-x 2 root root 4096 Dec 17 2007 hfs
drwxr-xr-x 2 root root 4096 Dec 17 2007 hfsplus
drwxr-xr-x 2 root root 4096 Dec 17 2007 jbd
drwxr-xr-x 2 root root 4096 Dec 17 2007 jffs2
drwxr-xr-x 2 root root 4096 Dec 17 2007 lockd
drwxr-xr-x 2 root root 4096 Dec 17 2007 msdos
drwxr-xr-x 2 root root 4096 Dec 17 2007 nfs
drwxr-xr-x 2 root root 4096 Dec 17 2007 nfs_common
drwxr-xr-x 2 root root 4096 Dec 17 2007 nfsd
drwxr-xr-x 2 root root 4096 Dec 17 2007 nls
drwxr-xr-x 2 root root 4096 Dec 17 2007 smbfs
drwxr-xr-x 2 root root 4096 Dec 17 2007 udf
drwxr-xr-x 2 root root 4096 Dec 17 2007 vfat
若查看已经启用的文件系统,则使用cat /proc/filesystems;
$ cat /etc/filesystems
ext3
ext2
nodev proc
nodev devpts
iso9660
vfat
hfs
Linux采用VFS即虚拟文件系统为所有的文件系统提供统一的调用接口;
初始化文件系统
磁盘格式化采用mke2fs命令,其有许多选项常见的如下:
-b:块大小,包含1024/2048/4096字节
-i:每个inode的字节大小
-j:创建ext3 journal
-n:模拟测试创建文件的效果但不实际执行
-N:分配inode的数量,而inode数量在文件系统创建后不可再更改
-S:初始化超级块和组描述符,通常被当作在超级块及其备份遭破坏后的最后一招,使用后应立即调用e2fsck检测
加载
注:将分区加载到某目录后,该目录原有的子目录会暂时被隐藏直至该分区被卸载为止;不同的文件系统可能有着不同的选项,以下的部分仅适用于ext3
使用mount命令,其选项很多常用的如下:
-o:分区载入选项,包括rw(读写)/ro(只读);noatime不更新访问时间,可加速;noexec不允许执行二机制文件;
-grpid:指定新创建文件的默认组,如不设置则使用当前进程的fsgid
-sb=n:指定超级块位置,默认为1;早先版本每8192块就有一个冗余备份,即第1/8193/16385..均为超级块,当文件系统超大时会造成浪费;自1.08版本其mke2fs增添-s选项,即稀疏超级块sparse superblock,
-data:指定文件数据(非metadata)的日志模式:journal—数据写入文件系统前先写日志;ordered—默认,先写数据后记日志;writeback--
-a:加载/etc/fstab列出的所有文件系统
-n:加载但不更新/etc/mtab,可在/etc为可读时使用
-L/U: 加载具有指定的标签名或UUID的文件系统
修改磁盘参数
加载磁盘后可能根据实际需求修改部分参数,可使用以下命令
Mknod
用于创建字符或块设备并赋予设备号;
Linux下所有的硬盘/软盘/键盘等外部设备都用文件代表存放在/dev下,但内核无法识别诸如/dev/sda等文件名,实际上其采用主/次设备号来区分不同的设备;
内核中维护着一个device driver table,其中主设备号代表该设备类型,次设备号代表该类型下的具体设备,两者都存储于该设备的i-node中,不可随意修改其值;
mknod还可用于创建FIFO文件
$ pwd
/dev
$ ll cpu* | head -5
crw------- 1 root root 203, 0 Oct 6 07:30 cpu0
crw------- 1 root root 203, 1 Oct 6 07:30 cpu1
crw------- 1 root root 203, 10 Oct 6 07:30 cpu10
crw------- 1 root root 203, 11 Oct 6 07:30 cpu11
crw------- 1 root root 203, 12 Oct 6 07:30 cpu12
$ ll md* | head -5
brw-rw---- 1 root disk 9, 0 Oct 5 23:30 md0
brw-r----- 1 root disk 9, 1 Oct 5 23:30 md1
brw-r----- 1 root disk 9, 10 Oct 5 23:30 md10
brw-r----- 1 root disk 9, 11 Oct 5 23:30 md11
brw-r----- 1 root disk 9, 12 Oct 5 23:30 md12
Hdparm
仅限于IDE和SATA,对于SCSI则使用sdparm
设置硬盘参数,比如禁止write-back,启用DMA
-d get/set using_dma flag ,d1打开DMA模式,所谓DMA即跳过CPU直接访问内存
--direct use O_DIRECT to bypass page cache for timings
-f flush buffer cache for device on exit
-m get/set multiple sector count,-m16即一次IO中断从磁盘读入16个扇区
-P set drive prefetch count
-t 查看磁盘读次数
-T 查看cache读次数
$ sudo hdparm -tT /dev/hda
/dev/hda:
Timing buffer-cache reads: 128 MB in 1.34 seconds =95.52 MB/sec
Timing buffered disk reads: 64 MB in 17.86 seconds = 3.58 MB/sec
$ sudo hdparm /dev/hda
/dev/hda:
multcount = 0 (off)
I/O support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 1870/255/63, sectors = 30043440, start = 0
multcount即一次I/O中断读取的sector数量,可通过-m调整,能有效降低CPU使用率及增加IO性能,-m16每次读取16个扇区;
I/O support决定数据从PCI到控制器的传输默认,目前普遍支持32bit,-c3激活32bit传输
Unmaskirq启用此功能运行linux在处理磁盘中断时接受其它中断,即等待磁盘返回请求数据时linux可以处理其它中断相关任务
Tune2fs
文件系统被创建后部分参数可通过tune2fs调整
-j:为文件系统增添ext3 journal选项
-l:列举超级块内容
-L:设置磁盘标签
-m:设置预留磁盘百分比
-u:设置可访问预留数据块的用户,可赋予uid或用户名
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-753426/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15480802/viewspace-753426/