您的位置:首页 > 运维架构 > Linux

Linux系统管理:文件系统的挂载与自动格式化脚本

2011-07-29 22:08 423 查看
上午是培训033的结课考试,虽说是033,但是在马哥的指导下,远远超越了033的难度。。。下午,学习了挂载,留了个小作业,写一个脚本来实现自动分区。不多说了,切入正题。



文件系统的分类:

ext2,ext3,ext4,ntfs,xfs,jfs,reiserfs,iso,swap,vfat等等。。

这么多文件系统,出现了一个问题,在程序设计时要考虑到I\O识别文件系统,那么光写不同文件系统的I\O识别程序,就是一个很大的工作。

所以,出现了一个中间层虚拟文件系统:VFS 处于文件系统与用户之间,协调用户和文件系统,提供了同一的调用接口



硬盘的分类(按接口):

1.ATA(IDE) :并行口 需要适配器转换信号 133M/s 并行两根线容易互相干扰,到一定设计上限就不行

2.SATA:串行口 300M/S 600M/S 4Gbps 一根线不受干扰,所以块

3.SCSI:并行 samll computer system interface 吞吐量大,寿命长,转速高,企业级应用 适配器本身带控制器,类似CPU,可以完全实现控制I/O,极大的降低了CPU的负担 还可以外部存储

4.SAS: 串行SCSI:用串行模拟SCSI

5.USB还有其他

那么有了文件系统和硬盘的概念,那么我们就可以进入分区的话题:

一个硬盘最多可以有4个主分区,为什么呢?这是因为技术原因,每个硬盘的第一个块512字节是它的引导块:bootloader,而其中446字节用于存放一个引导程序来引导操作系统,剩余的64字节用于存储分区信息,也就是我们熟悉的硬盘分区表MBR,而每一个分区的分区信息为16字节,所以64/16=4个分区,被成为主分区或者扩展分区。



linux的分区分为四大步:

首先是fdisk:

假定硬盘为/dev/sda

在命令行输入:fdisk /dev/sda

The number of cylinders for this disk is set to 15665.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):    //在这里按m

几个关系案件属性

m 帮助

d 用于删除一个分区

n 新建一个分区 +10G 分10G,由于柱面大小的原因,不会精确的划分

p 打印分区 , 显示现有分区类型

t 调整分区类型

w 写到磁盘上去

q 反悔,退出不保存

a 修改活动分区

我们输入n 会提示你选择起始柱面和结束柱面,选择完后,选择扩展分区,按w保存退出。

这样,第一步就完成了。

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        5235    41945715   8e  Linux LVM
/dev/sda3            5236        5300      522112+  82  Linux swap / Solaris
/dev/sda4            5301       15665    83256862+   5  Extended
/dev/sda5            5301       15665    83256831   83  Linux

第二步:重新载入分区表信息

命令:

[root@server45 ~]# partprobe /dev/sda

第三步:格式化分区

mkfs -t  ext2 /dev/sda5

或者

mkfs.ext2 /dev/sda5

最后一步:挂载

mkdir /mnt/sda5
mount /dev/sda5 /mnt/sda5

补充:如果想实现开机自动挂载,那么编辑/det/fstab文件

/dev/vol0/root          /                       ext3    defaults        1 1
/dev/vol0/home          /home                   ext3    defaults        1 2
LABEL=/boot             /boot                   ext3    defaults        1 2
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
LABEL=SWAP-sda3         swap                    swap    defaults        0 0

这里面有6个关键字段

1.要挂载的设备: /dev/sda5,LABEL=NYDATA,UUID=""

2.挂载点:

3.文件系统类型:

4.挂载选项:如果有多个选项,选项间用逗号隔开,默认defaults 如果要多一个选项用,defaults,acl

5.转储频率:0 不做任何备份,1 表示每天备份,2 表示隔天备份不常用

6.文件系统的自检次序:0-9 0不自检,1开机直接自检(只有root),2次之(home),3。。



自动格式化脚本:

#!/bin/bash
fdisk /dev/sda << End
n
e

w
End

这个脚本时假设硬盘上已有3个主分区,把最后一个分区格式化为扩展分区。

那么我们把这个脚本扩展一下,假设硬盘为3个主分区,一个扩展分区,脚本的作用是:

1.执行一次自动创建一个10GB的逻辑分区,并且重读MBR.

2.格式化新建立的逻辑新区

3.在/mint目录下建立以这个新分区名的文件夹,自动挂载这个分区

#!bin/bash
fdisk /dev/sda << End
n

+10G
w
End
partprobe /dev/sda
F=`fdisk -l /dev/sda | tail -1 | cut -d/ -f3 | awk '{print $1}'`
mkfs /dev/$F
mkdir /mnt/$F
mnt /dev/$F /mnt/$F
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: