1.      Fdisk命令1



1.1.       Fisk的用途1



1.2.       Fisk的使用方式2



1.2.1.        fdisk
的说明2



1.2.2.        查看分区信息3



1.2.3.        创建分区4



1.2.4.        分区格式化并加载7



1.2.5.        分区删除8



2.      fstab. 8



2.1.       fstab文件说明8



2.2.       fstab文件示例8



2.2.1.        file
systems. 9



2.2.2.        dir. 9



2.2.3.        type. 9



2.2.4.        options. 9



2.2.5.        dump. 11



2.2.6.        pass. 11



2.3.       fstab
自动挂载11



 



 



 



<![if !supportLists]>1.   <![endif]>Fdisk命令



<![if !supportLists]>1.1.<![endif]>Fisk的用途



FDISK进行硬盘分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(MasterBootRecordMBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高级格式化,即Format命令来实现。用一个形象的比喻,分区就好比在一张白纸上画一个大方框。而格式化好比在方框里打上格子。安装各种软件就好比在格子里写上字。分区和格式化就相当于为安装软件打基础,实际上它们为电脑在硬盘上存储数据起到标记定位的作用。



<![if !supportLists]>1.2.<![endif]>Fisk的使用方式



一般来说,建立硬盘分区的顺序是:建立基本分区→建立扩展分区→将扩展分区分成数逻辑分区。



<![if !supportLists]>1.2.1. <![endif]>fdisk 的说明



当我们通过 fdisk 设备,进入相应设备的操作时,会发现有如下的提示;以 fdisk /dev/sda 设备为例,以下同;



 



[root@localhost beinan]# fdisk /dev/sda



Command
(m for help):
在这里按m ,就会输出帮助;



Command
action



a
toggle a bootable flag



b edit
bsd disklabel



c
toggle the dos compatibility flag



d
delete a partition
注:这是删除一个分区的动作;



l
list known partition types
注:l是列出分区类型,以供我们设置相应分区的类型;



m
print this menu
注:m 是列出帮助信息;



n
add a new partition
注:添加一个分区;



o
create a new empty DOS partition table



p
print the partition table
注:p列出分区表;



q
quit without saving changes
注:不保存退出;



s
create a new empty Sun disklabel



t
change a partition’s system id
注:t 改变分区类型;



u
change display/entry units



v
verify the partition table



w
write table to disk and exit
注:把分区表写入硬盘并退出;



x
extra functionality (experts only)
注:扩展应用,专家功能;



<![if !supportLists]>1.2.2. <![endif]>查看分区信息



命令如下:fdisk –l



显示结果如下:








[root@localhost ~]#
fdisk -l



Disk /dev/sda: 78.0 GB,
78026450432 bytes

255 heads, 63 sectors/track, 9486 cylinders

Units = cylinders of 16065 512 = 8225280 bytes



   Device Boot      Start        
End     
Blocks   Id  System

/dev/sda1  
          
1         
13     
104391   83  Linux

/dev/sda2             
14       
9486   
76091872+  8e  Linux LVM




图中含义为:有一块硬盘,设备为/dev/sda,该硬盘有78.0G,共78026450432bytes,该磁盘有逻辑磁头255个(也即是255个逻辑磁面),63个逻辑扇区(每个磁面),9486个柱面(柱面数=磁道数)。计算公式如下:



硬盘体积 (单位bytes)=磁面个数 x 扇区个数 x 每个扇区的大小512
x
柱面个数



25563**5129486=78025006080bytes



每个柱面的大小=磁面个数扇区个数512 = 25563512 = 8225280bytes=8M



这块硬盘被分为两个分区/dev/sda1/dev/sda2



其中sda1boot,开始柱面cylinders位置是1,结束位置是13,大小Blocks(此处的blocklinux的文件块block是两个含义)104391K,分区类型ID83 ,即Linux分区。



其中sda2为普通分区,开始位置是14,结束位置是9486,大小Blocks76091872.?K,加号表示没有满1K,分区类型ID8e,即LinuxLVM分区。



<![if !supportLists]>1.2.3. <![endif]>创建分区



创建分区是比较简单的,可以按照Linuxfdisk命令提示操作。








Command (m for help): p 注:列出分区表;


Disk /dev/sda: 1035 MB, 1035730944 bytes


256 heads, 63 sectors/track, 125
cylinders


Units = cylinders of 16128 512 =
8257536 bytes


Device Boot Start End Blocks Id
System


Command (m for help): n 注:添加分区;


Command action


e extended


p primary partition (1-4)


p 注:添加主分区;


Partition number (1-4): 1 注:添加主分区1


First cylinder (1-125, default 1):
注:直接回车,主分区1的起始位置;默认为1,默认就好;


Using default value 1


Last cylinder or +size or +sizeM or +sizeK (1-125, default
125): +200M
注:指定分区大小,用+200M来指定大小为200M


Command (m for help): n 注:添加新分区;


Command action


e extended


p primary partition (1-4)


p 注:添加主分区


Partition number (1-4): 2 注:添加主分区2


First cylinder (26-125, default
26):


Using default value 26


Last cylinder or +size or +sizeM or +sizeK (26-125,
default 125): +200M
注:指定分区大小,用+200M来指定大小为200M


Command (m for help): n


Command action


e extended


p primary partition (1-4)


e 注:添加扩展分区;


Partition number (1-4): 3 注:指定为3 ,因为主分区已经分了两个了,这个也算主分区,从3开始;


First cylinder (51-125, default
51):
注:直接回车;


Using default value 51


Last cylinder or +size or +sizeM or +sizeK (51-125, default
125):
注:直接回车,把其余的所有空间都给扩展分区;


Using default value 125


Command (m for help): p


Disk /dev/sda: 1035 MB, 1035730944 bytes


256 heads, 63 sectors/track, 125
cylinders


Units = cylinders of 16128 512 =
8257536 bytes


Device Boot Start End Blocks Id
System


/dev/sda1
1 25 201568+ 83 Linux


/dev/sda2
26 50 201600 83 Linux


/dev/sda3
51 125 604800 5 Extended


Command (m for help): n


Command action


l logical (5 or over)


p primary partition (1-4)


l 注:添加逻辑分区;


First cylinder (51-125, default
51):


Using default value 51


Last cylinder or +size or +sizeM or +sizeK (51-125,
default 125): +200M
注:添加一个大小为200M大小的分区;


Command (m for help): n


Command action


l logical (5 or over)


p primary partition (1-4)


l 注:添加一个逻辑分区;


First cylinder (76-125, default
76):


Using default value 76


Last cylinder or +size or +sizeM or +sizeK (76-125,
default 125): +200M
注:添加一个大小为200M大小的分区;


Command (m for help): p 列出分区表;


Disk /dev/sda: 1035 MB, 1035730944 bytes


256 heads, 63 sectors/track, 125
cylinders


Units = cylinders of 16128 512 =
8257536 bytes


Device Boot Start End Blocks Id
System


/dev/sda1
1 25 201568+ 83 Linux


/dev/sda2
26 50 201600 83 Linux


/dev/sda3
51 125 604800 5 Extended


/dev/sda5
51 75 201568+ 83 Linux


/dev/sda6
76 100 201568+ 83 Linux


Command (m for help): w 保存并退出




<![if !supportLists]>1.2.4. <![endif]>分区格式化并加载








[root@localhost
root]# mkfs.ext3 /dev/sda6
格式化/dev/sda6ext3格式


[root@localhost
root]# mkdir /mnt/sda6
创建挂载点


[root@localhost
root]# mount /dev/sda6 /mnt/sda6
挂载


[root@localhost
root]# dflh
查看硬盘信息


Filesystem 容量 已用 可用 已用% 挂载点


/dev/hda8
11G 8.4G 2.0G 81% /


/dev/shm 236M 0 236M 0% /dev/shm


/dev/hda10
16G 6.9G 8.3G 46% /mnt/hda10


/dev/sda6
191M 5.6M 176M 4% /mnt/sda6


 




<![if !supportLists]>1.2.5. <![endif]>分区删除



分区删除比较简单,用unmount命令取消挂载,然后fisk /dev/sda,然后d删除分区即可



<![if !supportLists]>2.   <![endif]>fstab



<![if !supportLists]>2.1.<![endif]>fstab文件说明



文件fstab包含了你的电脑上的存储设备及其文件系统的信息。它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的唯一文件。



这个文件的全路径是/etc/fstab。它只是一个文本文件,你能够用你喜欢的编辑器打开它,但是必须是root用户才能编辑它。同时fsckmountumount的等命令都利用该程序。



具体来说:用fstab可以自动挂载各种文件系统格式的硬盘、分区、可移动设备和远程设备等。对于Windowsarch双操作系统用户,用fstab挂载FAT格式和NTFS格式的分区,可以在Linux中共享windows系统下的资源。



<![if !supportLists]>2.2.<![endif]>fstab文件示例



现在让我们看一下一个典型的fstab文件:







# <file system><dir><type><options><dump><pass>
none            /dev/pts      devpts    defaults                0      0
none            /dev/shm      tmpfs     defaults                0      0
 
/dev/cdrom      /media/cd     iso9660   ro,user,noauto,unhide   0      0
/dev/dvd        /media/dvd    udf       ro,user,noauto,unhide   0      0
/dev/fd0        /media/fl     auto      user,noauto             0      0
 
/dev/hda1       swap          swap      defaults                0      0
/dev/hda4       /             ext3      defaults                0      1
/dev/hda3       /home         xfs       rw,suid,exec,auto,nouser,async 0      2
</pass></dump></options></type></dir></file>


一个典型的entry有下面的fields (fields用空格或tab分开):



<filesystem><dir><type><options><dump><pass>



<![if !supportLists]>2.2.1. <![endif]>file systems



<file
systems>
不是我们通常理解的文件系统,而是指设备(硬盘及其分区,DVD光驱等)。它告知我们设备(分区)的名字,这是你在命令行中挂载(mount)、卸载(umount)设备时要用到的。除了直接用设备(分区)名字,也可以用UUID或卷名。



例如 LABEL= or UUID=<uuid>。例如, LABEL=Boot' <o:p></o:p></span></span></p> <p class=MsoNormal style='text-indent:21.2pt;mso-char-indent-count:2.02'><span class=GramE><span lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:"微软雅黑","sans-serif"'>or</span></span><span lang=EN-US style='mso-bidi-font-size:10.5pt;font-family:"微软雅黑","sans-serif"'>UUID=3e6be9de-8139-11d1-9106-a43f08d823a6’



<![if !supportLists]>2.2.2. <![endif]>dir



<dir>告诉我们设备挂载到哪里。



<![if !supportLists]>2.2.3. <![endif]>type



<type>指挂载设备或分区为何种文件系统类型(例如:ext2, ext3, reiserfs, xfs,
jfs, smbfs, iso9660, vfat, ntfs, swap
等)



<![if !supportLists]>2.2.4. <![endif]>options



<options>它能使你所挂载的设备在开机时自动加载、使中文显示不出现乱码、限制对挂载分区读写权限。它是与mount命令的用法相关的,要想得到一个完整的列表,参考mount manpage.



noatime   关闭atime特性,提高性能,这是一个很老的特性,放心关闭,还能减少loadcycle



defaults  使用默认设置。等于rw,suid,dev,exec,auto,nouser,async



ro  挂载为只读权限



rw   挂载为读写权限



exec是一个默认设置项,它使在那个分区中的可执行的二进制文件能够执行。



noexec  二进制文件不允许执行。千万不要在你的root分区中用这个选项!!!



suid     Permit the operation
of suid, and sgid bits.
They are mostly used to allow users on a computer system to execute binary executables with temporarily elevated privileges in order
to perform a specific task.



nosuid   Blocks the operation of suid, and sgid bits.



auto  在启动或在终端中输入mount -a时自动挂载



noauto  设备(分区)只能手动挂载 The file
system can be mounted only explicitly.



iocharset=在=号后面加入你的本地编码,似乎在这个设备(分区)中做文件IO的时候就会自动做编码的格式转换。



nls==号后面加入你的本地编码,你的中文就不会出现乱码。



umask读写权限,比rorw优先



例如:umask=0000222,使得挂载时option中有default,普通用户仍然能读写挂载设备中的东西。



sync所有的I/O将以同步方式进行



async所有的I/O将以非同步方式进行



user允许任何用户挂载设备。 Implies noexec,nosuid,nodev unless
overridden.



nouser  只允许root用户挂载。这是默认设置。



<![if !supportLists]>2.2.5. <![endif]>dump



<dump>
dump utility用来决定是否做备份的. 安装之后(Arch Linux默认是不安装dump), dump会检查entry并用数字来决定是否对这个文件系统进行备份。允许的数字是01。如果是0dump就会忽略这个文件系统,如果是1dump就会作一个备份。大部分的用户是没有安装dump的,所以对他们而言<dump>这个entry应该写为0



<![if !supportLists]>2.2.6. <![endif]>pass



fsck会检查这个头目下的数字来决定检查文件系统的顺序,允许的数字是0, 1, 2。 文件系统的<pass>选项是0将不会被fsck utility检查。root文件系统应该拥有最高的优先权, 1,而所有其它的文件系统,如果你想让它被check的话,应该写成2



<![if !supportLists]>2.3.<![endif]>fstab 自动挂载



先在用fdisk -l(需要在root权限下)得到硬盘信息表,例如:








 
Device Boot      Start         End      Blocks   Id  System


/dev/sda1             
1       
2397   
19253871   
b  W95 FAT32


/dev/sda2           
2398       
3144    
6000277+  83  Linux


/dev/sda3           
3145       
9729   
52894012+   5  Extended


/dev/sda5           
3145        3152      
64228+  83  Linux


/dev/sda6           
3153       
3276     
995998+  82  Linux swap / Solaris


/dev/sda7           
3277       
7340   
32644048+  83  Linux


/dev/sda8           
7341       
9729   
19189611   
7  HPFS/NTFS




 



从上面知道,这台电脑上只有一个硬盘,其中分区sda1sda8NTFS格式,sda1为可以启动的,因而可能为window的系统所在盘。下面把系统盘以只读方式持载上去,非系统盘sda8以读写方式挂载上去(不能挂载在"/"及其以下的任何目录)。



编辑 /etc/fstab








vim /etc/fstab


/dev/sda1 /mnt/WindowsC vfat defaults,codepage=936,iocharset=cp936,umask=0222 0 0


/dev/sda8 /mnt/WindowsD ntfs defaults,iocharset=utf8,umask=000,nls=utf8 0 0




保存,退出。



之后运行mount –a 即可全部加载