1.1 通过命令对磁盘进行分区
在Linux中最常用的分区工具是fdisk。这个命令行工具可以在最基本的环境中选择,但是只有root用户可以使用。该命令语法如下。 fdisk [-l] [设备号]
常用选项:
设备号:需要进行配置的磁盘。 -l:显示指定磁盘的分区情况。
fdisk命令的选项并不多,主要的操作是进入fdisk环境的的相关操作,下面看几个fdisk命令的例子。
显示所有硬盘的分区情况
在fdisk -l显示的信息中,该计算机共有二块非IDE硬盘,其中/dev/sda已经有分区;/dev/sda还没有进行分区。 [root@srv ~]# fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes 255 heads, 63 sectors/track, 26108 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 * 1 25 200781 83 Linux /dev/sda2 26 6399 51199155 83 Linux /dev/sda3 6400 12773 51199155 83 Linux /dev/sda4 12774 26108 107113387+ 5 Extended /dev/sda5 12774 15323 20482843+ 83 Linux /dev/sda6 15324 17873 20482843+ 83 Linux /dev/sda7 17874 20423 20482843+ 83 Linux /dev/sda8 20424 21698 10241406 83 Linux
/dev/sda9 21699 21829 1052226 82 Linux swap / Solaris Disk /dev/sdb: 225.4 GB, 225485783040 bytes 255 heads, 63 sectors/track, 27413 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/sdb doesn't contain a valid partition table
显示指定硬盘的分区情况
显示第一块非IDE硬盘的分区情况。 [root@srv ~]# fdisk -l /dev/sda
Disk /dev/sda: 214.7 GB, 214748364800 bytes 255 heads, 63 sectors/track, 26108 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
http://onlyzq.cublog.cn
第1页,共17页
/dev/sda1 * 1 25 200781 83 Linux /dev/sda2 26 6399 51199155 83 Linux /dev/sda3 6400 12773 51199155 83 Linux /dev/sda4 12774 26108 107113387+ 5 Extended /dev/sda5 12774 15323 20482843+ 83 Linux /dev/sda6 15324 17873 20482843+ 83 Linux /dev/sda7 17874 20423 20482843+ 83 Linux /dev/sda8 20424 21698 10241406 83 Linux
/dev/sda9 21699 21829 1052226 82 Linux swap / Solaris
使用fdisk创建及管理硬盘分区
使用fdisk命令进行分区时,直接使用“fdisk 设备号”即可进入fdisk命令环境,比如要对第二块非IDE硬盘进行分区,可使用“fdisk /dev/sdb”。
[root@srv ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable.
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)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help):
在进入fdisk环境后,需要使用一系统指令进行分区操作。可以通过“m”查看这些指令的帮助信息。下面是几个在fdisk环境中常用的指令。
(1) p:显示当前磁盘分区情况。在显示内容中“Disk /dev/sdb: 225.4 GB,
225485783040 bytes”表示第二块非IDE硬盘的容量为210G;“255 heads, 63
sectors/track, 27413 cylinders”是fdisk计算的柱面数等信息;“Units = cylinders of 16065 * 512 = 8225280 bytes”是每个柱面的大小为8M多一点;接下是磁盘的分区表信息每列含义如下:
Device:指向这个设备节点,通常作为这个分区的名称使用。
Boot:如果在该表有“*”表示所在行的分区是可引导的,每个磁盘上可以有一个主分区被标为可引导。 Start、End:分区开始和结束的柱面。
Blocks:以1024字节的块为计算单位的分区大小。 Id:一个2位的十六进制数,代表分区类型。 System:Id定义的分区类型的文本名称。
Command (m for help): p
Disk /dev/sdb: 225.4 GB, 225485783040 bytes
http://onlyzq.cublog.cn
第2页,共17页
255 heads, 63 sectors/track, 27413 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
(2) n:建立新的分区、w保存fdisk的修改并退出、q不保存fdisk的修改并退出。
使用fdisk命令为/dev/sdb管理分区。
[root@srv ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable.
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)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 创建分区。
Command (m for help): n Command action
输入“e”表示要建立扩展分区;输入“p”表示要建立主分区。
e extended p primary partition (1-4) p
输入分区编号。
Partition number (1-4): 1
输入新建分区的起始柱面数,一般不输入直接回车。
First cylinder (1-27413, default 1): Using default value 1
输入新建分区的结束柱面数。输入柱面数虽然可以精确的进行分区,但计算起来比较麻烦。一般这里都直接输入新建分区的大小让fdisk自己计算,这样实际分区的大小可能与输入的大小有一点差别,但这个差别并不大不会影响正确使用。直接输入大小时使用“+”接分区大小及单位,比如下面输入的就是希望新建分区的大小是10G。还可以使用M、T等其它一些单位。
Last cylinder or +size or +sizeM or +sizeK (1-27413, default 27413): +10G 创建分区。
Command (m for help): n
Command action e extended
p primary partition (1-4)
输入e,建立扩展分区。
e
http://onlyzq.cublog.cn
第3页,共17页
输入分区编号。
Partition number (1-4): 2
First cylinder (1218-27413, default 1218): Using default value 1218
直接回车表示把磁盘所有的剩余空间都给这个分区。
Last cylinder or +size or +sizeM or +sizeK (1218-27413, default 27413): Using default value 27413
Command action
输入“l”表示要建立逻辑分区,由于一块磁盘只能有一个扩展分区,上一步已经建立了一个扩展分区,所以这里只能建立主分区或在扩展分区主建立逻辑分区。 创建分区。
Command (m for help): n
l logical (5 or over) p primary partition (1-4) l
First cylinder (1218-27413, default 1218): Using default value 1218
输入分区大小。
Last cylinder or +size or +sizeM or +sizeK (1218-27413, default 27413): +10G
显示目录的分区情况,注意这里显示的内容只是一个计算值目前并没有写入磁盘分区表。如果不想保存本次的修改内容可使用“q”退出。
Command (m for help): p
Disk /dev/sdb: 225.4 GB, 225485783040 bytes 255 heads, 63 sectors/track, 27413 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 1217 9775521 83 Linux /dev/sdb2 1218 27413 210419370 5 Extended
第一个扩展分区的编号总是5开始。
/dev/sdb5 1218 2434 9775521 83 Linux
保存fdisk的修改并退出。
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
对于已有分区并在使用的硬盘使用fdisk改变分区保存退出时,fdisk命令会提示磁盘分区表无法写的错,这里可以重新启动计算机或使用如下命令使改变的分区信息写入磁盘分区表。
Command (m for help): w
http://onlyzq.cublog.cn
第4页,共17页
The partition table has been altered! Calling ioctl() to re-read partition table. #无法写磁盘分区表。
WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table.
The new table will be used at the next reboot.
[root@srv ~]# partprobe #使用partprobe命令使新建的分区信息写入磁盘分区表。
(3) d:删除分区。
使用fdisk命令为/dev/sdb管理分区。
[root@srv ~]# fdisk /dev/sdb
The number of cylinders for this disk is set to 27413. 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): p
Disk /dev/sdb: 225.4 GB, 225485783040 bytes 255 heads, 63 sectors/track, 27413 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 1217 9775521 83 Linux /dev/sdb2 1218 27413 210419370 5 Extended /dev/sdb5 1218 2434 9775521 83 Linux
删除分区。
Command (m for help): d
输入要删除的分区编号,这里输入“5”表示要删除第2个分区。
Partition number (1-5): 5
再次查看分区情况,第5个分区已经删除。
Command (m for help): p
Disk /dev/sdb: 225.4 GB, 225485783040 bytes 255 heads, 63 sectors/track, 27413 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 1217 9775521 83 Linux /dev/sdb2 1218 27413 210419370 5 Extended Command (m for help): w #保存fdisk的修改并退出。 The partition table has been altered! Calling ioctl() to re-read partition table.
http://onlyzq.cublog.cn
第5页,共17页
WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table.
The new table will be used at the next reboot. Syncing disks.
使用partprobe命令使新建的分区信息写入磁盘分区表。
[root@srv ~]# partprobe
(4) a:指定分区为引导分区。
使用fdisk命令为/dev/sdb管理分区。
[root@srv ~]# fdisk /dev/sdb
The number of cylinders for this disk is set to 27413.
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): p
Disk /dev/sdb: 225.4 GB, 225485783040 bytes 255 heads, 63 sectors/track, 27413 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 1217 9775521 83 Linux
/dev/sdb2 1218 27413 210419370 5 Extended /dev/sdb5 1218 3650 19543041 83 Linux /dev/sdb6 3651 7298 29302528+ 83 Linux /dev/sdb7 7299 12162 39070048+ 83 Linux /dev/sdb8 12163 12187 200781 83 Linux
指定引导分区。
Command (m for help): a
输入要指定引导分区的分区编号,这里输入“1”表示要指定的引导分区第1个分区。
Partition number (1-8): 1 Command (m for help): p
Disk /dev/sdb: 225.4 GB, 225485783040 bytes 255 heads, 63 sectors/track, 27413 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System #第1个分区在“Boot”列有一个“*”,表明该分区已是引导分区。 /dev/sdb1 * 1 1217 9775521 83 Linux /dev/sdb2 1218 27413 210419370 5 Extended
http://onlyzq.cublog.cn
第6页,共17页
/dev/sdb5 1218 3650 19543041 83 Linux /dev/sdb6 3651 7298 29302528+ 83 Linux /dev/sdb7 7299 12162 39070048+ 83 Linux /dev/sdb8 12163 12187 200781 83 Linux
保存fdisk的修改并退出。
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table.
The new table will be used at the next reboot. Syncing disks.
使用partprobe命令使新建的分区信息写入磁盘分区表。
[root@srv ~]# partprobe
(5) t:改变分区类型、l:查看可用的分区类型。分区类型决定分区是一什么样的
分区,默认情况下fdisk分自动将分区的类型指定为“Linux”(可能是主分区
或逻辑分区)或“Extended”(扩展分区)。在一些情况下需要手动修改分区的类型以满足特殊应用的需求,比如配置RAID或LVM。
[root@srv ~]# fdisk /dev/sdb
The number of cylinders for this disk is set to 27413. 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): l 0 Empty 1 FAT12
2 XENIX root 3 XENIX usr 4 FAT16 <32M 5 Extended 6 FAT16
7 HPFS/NTFS 8 AIX
9 AIX bootable a OS/2 Boot Manag b W95 FAT32 c W95 FAT32 (LBA) e W95 FAT16 (LBA) f W95 Ext'd (LBA) 10 OPUS
1e Hidden W95 FAT1
80 Old Minix 81 Minix / old Lin
82 Linux swap / So
bf Solaris
c1 DRDOS/sec (FAT- c4 DRDOS/sec (FAT- c6 DRDOS/sec (FAT-
24 NEC DOS 39 Plan 9 3c PartitionMagic 40 Venix 80286 41 PPC PReP Boot 42 SFS 4d QNX4.x
4e QNX4.x 2nd part 4f QNX4.x 3rd part 50 OnTrack DM
51 OnTrack DM6 Aux
83 Linux
84 OS/2 hidden C: c7 Syrinx
85 Linux extended da Non-FS data
86 NTFS volume set 87 NTFS volume set
db CP/M/ CTOS / . de Dell Utility df BootIt e1 DOS access e3 DOS R/O e4 SpeedStor eb BeOS fs ee EFI GPT
ef EFI (FAT-12/16/
f0 Linux/PA-RISC b
88 Linux plaintext 8e Linux LVM 93 Amoeba 94 Amoeba BBT 9f BSD/OS
a0 IBM Thinkpad hi
52 CP/M
53 OnTrack DM6 Aux
54 OnTrackDM6 55 EZ-Drive
a5 FreeBSD a6 OpenBSD
http://onlyzq.cublog.cn
第7页,共17页
11 Hidden FAT12 12 Compaq diagnost 14 Hidden FAT16 <3 16 Hidden FAT16
17 Hidden HPFS/NTF
56 Golden Bow 5c Priam Edisk 61 SpeedStor 64 Novell Netware
a7 NeXTSTEP a8 Darwin UFS a9 NetBSD b7 BSDI fs b8 BSDI swap
bb Boot Wizard hid
f1 SpeedStor f4 SpeedStor f2 DOS secondary fb VMware VMFS fc VMware VMKCORE fd Linux raid auto fe LANstep ff BBT
63 GNU HURD or Sys ab Darwin boot
18 AST SmartSleep 65 Novell Netware 1b Hidden W95 FAT3 70 DiskSecure Mult 1c Hidden W95 FAT3 75 PC/IX
be Solaris boot
这些分类类型中并不是每一种很会经常使用到,在本书中主要会使用到“Linux LVM”、“Linux raid auto”、“Linux swap / Solaris”三种,下面将/dev/sdb5的分区类型转换为“Linux LVM”。
使用fdisk命令为/dev/sdb管理分区。
[root@srv ~]# fdisk /dev/sdb
The number of cylinders for this disk is set to 27413.
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): p
Disk /dev/sdb: 225.4 GB, 225485783040 bytes 255 heads, 63 sectors/track, 27413 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 1217 9775521 83 Linux
/dev/sdb2 1218 27413 210419370 5 Extended /dev/sdb5 1218 2434 9775521 83 Linux /dev/sdb6 2435 3651 9775521 83 Linux
转换分区类型。
Command (m for help): t
输入要转换的分区编号。
Partition number (1-6): 6
将分区转换为“Linux LVM”。转换时输入分区类型的编号,分区类型编号是一个十六进制的数,上面已经说明可以使用“l”查看。在这里也可以通过“L”查看。
Hex code (type L to list codes): 8e
Changed system type of partition 6 to 8e (Linux LVM) Command (m for help): p
Disk /dev/sdb: 225.4 GB, 225485783040 bytes
http://onlyzq.cublog.cn
第8页,共17页
255 heads, 63 sectors/track, 27413 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 1217 9775521 83 Linux
/dev/sdb2 1218 27413 210419370 5 Extended /dev/sdb5 1218 2434 9775521 83 Linux
分区类型已经转换为“Linux LVM”。
/dev/sdb6 2435 3651 9775521 8e Linux LVM
保存fdisk的修改并退出。
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table.
The new table will be used at the next reboot. Syncing disks.
使用partprobe命令使新建的分区信息写入磁盘分区表。
[root@srv ~]# partprobe
1.2 创建文件系统
Linux系统支持的文件系统非常多,在本章中主要讲述几种常见文件系统的创建方面。这部分内容假设已经对一块硬盘进行了分区,其分区结构如下。 [root@srv ~]# fdisk /dev/sdb
The number of cylinders for this disk is set to 27413. 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): p
Disk /dev/sdb: 225.4 GB, 225485783040 bytes 255 heads, 63 sectors/track, 27413 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 1217 9775521 83 Linux /dev/sdb2 1218 27413 210419370 5 Extended /dev/sdb5 1218 3650 19543041 83 Linux /dev/sdb6 3651 7298 29302528+ 83 Linux /dev/sdb7 7299 12162 39070048+ 83 Linux /dev/sdb8 12163 12187 200781 83 Linux
http://onlyzq.cublog.cn
第9页,共17页
1.2.1 创建msdos文件系统
在Linux中使用mkfs.msdos将分区格式化为msdos文件系统,该命令语法如下。 mkfs.msdos [ -c] [ -n <卷标>] 分区号
常用选项:
分区号:需要进行配置的分区。 -c:格式化前先检查是否有坏道。 -n <卷标>:指定卷标。
下面将分区/dev/sdb8格式为msdos文件系统的具体操作步骤。
将分区/dev/sdb8格式为msdos文件系统并指定卷标为“msdos”。
[root@srv ~]# mkfs.msdos -n msdos /dev/sdb8 mkfs.msdos 2.11 (12 Mar 2005)
通过parted命令可以查看磁盘分区及文件系统情况。
[root@srv ~]# parted GNU Parted 1.8.1 Using /dev/hdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
Using /dev/sdb
使用“p”查看。 选择查看/dev/sdb
(parted) select /dev/sdb
(parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags 1 32.3kB 10.0GB 10.0GB primary ext3 2 10.0GB 225GB 215GB extended 5 10.0GB 30.0GB 20.0GB logical 6 30.0GB 60.0GB 30.0GB logical 7 60.0GB 100GB 40.0GB logical #/dev/sdb8已被格式为msdos文件系统。
8 100GB 100GB 206MB logical fat16
使用“q”退出parted。
(parted) q
http://onlyzq.cublog.cn
第10页,共17页
1.2.2 创建vfat文件系统
在Linux中使用mkfs.vfat将分区格式化为vfat文件系统,该命令语法如下。 mkfs.vfat [ -c] [ -n <卷标>] 分区号
常用选项:
分区号:需要进行配置的分区。 c:格式化前先检查是否有坏道。 -n <卷标>:指定卷标。
下面将分区/dev/sdb7格式为vfat文件系统的具体操作步骤。
将分区/dev/sdb7格式为vfat文件系统。
[root@srv ~]# mkfs.vfat /dev/sdb7 mkfs.vfat 2.11 (12 Mar 2005)
通过parted命令可以查看磁盘分区及文件系统情况。
[root@srv ~]# parted GNU Parted 1.8.1 Using /dev/hdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
Using /dev/sdb
使用“p”查看。 选择查看/dev/sdb。
(parted) select /dev/sdb
(parted) p Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 225GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags 1 32.3kB 10.0GB 10.0GB primary ext3 2 10.0GB 225GB 215GB extended 5 10.0GB 30.0GB 20.0GB logical 6 30.0GB 60.0GB 30.0GB logical #/dev/sdb7已被格式为vfat文件系统。
7 60.0GB 100GB 40.0GB logical fat32 8 100GB 100GB 206MB logical fat16
使用“q”退出parted。
(parted) q
http://onlyzq.cublog.cn
第11页,共17页
1.2.3 创建ext3文件系统
ext3是目前大多数Linux发行版默认的地文件系统,在Linux中使用mkfs.ext3将分区格式化为ext3文件系统,该命令语法如下。 mkfs.ext3 [ -c] [ -L <卷标>] 分区号
常用选项:
分区号:需要进行配置的分区。 -c:格式化前先检查是否有坏道。 -L <卷标>:指定卷标。
下面将分区/dev/sdb6格式为ext3文件系统的具体操作步骤。 [root@srv ~]# mkfs.ext3 /dev/sdb6 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux
Block size=4096 (log=2) Fragment size=4096 (log=2) 3662848 inodes, 7325632 blocks
366281 blocks (5.00%) reserved for the super user First data block=0
Maximum filesystem blocks=0 224 block groups
32768 blocks per group, 32768 fragments per group 16352 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000
Writing inode tables: done Creating journal (32768 blocks): done
1.2.4 更改分区卷标
在格式化命令是可通过选项指定分区的卷标,在不格式化的情况下,可以通过e2label查看及更改分区的卷标,该命令语法如下。 e2label分区号 [<卷标>]
常用选项:
分区号:需要进行配置的分区。 卷标:指定卷标。
e2label在不指定卷标时表示查看指定分区的卷标。下面看几个e2label命令的例子。
查看/dev/sdb6的卷标。
第12页,共17页
http://onlyzq.cublog.cn
[root@srv ~]# e2label /dev/sdb6 ext3
更改/dev/sdb6的卷标为“ctu”。
[root@srv ~]# e2label /dev/sdb6 ctu
1.3 挂载设备
在Linux系统中使用一块磁盘的顺序是:分区、格式化、挂载分区。所有已格式化的分
区只有在挂载后才可以给用户使用。在Linux提供了很多方法用于挂载分区,下面是几种比较常见的挂载分区的方法。
1.3.1 挂载及卸载设备
mount命令主要用户挂载设备及显示系统的挂载情况,该命令语法如下。 mount [-afFnrvw] [-L<标签>] [-o<选项>] [-t<文件系统类型>] [设备名] [挂载点]
常用选项:
设备名:需要进行挂载的设备。 挂载点:将设备挂载到的目录。
-a:加载文件/etc/fstab中设置的所有设备。
-f:不实际加载设备,与“-v”等选项同时使用以查看mount的执行过程。 -F:需与-a选项同时使用。所有在/etc/fstab中设置的设备会被同时加载,可加快执行速度。
-L <卷标>:加载文件系统标签为指定卷标的设备。 -n:不将加载信息记录在/etc/mtab文件中。 -o <选项> 指定加载文件系统时的选项。 -r:以只读方式加载设备。
-t <文件系统类型>:指定设备的文件系统类型。常用的选项说明有:ext3、msdos、vfat、nfs、iso9660、auto。其中auto(自动检测文件系统)是mount命令的默认选项。
-v:执行时显示详细的信息。
-w:以可读写模式加载设备,这也是mount命令的默认选项。 --bind:将已挂载设备再次挂载。
其中“-o”选项可以指定的以下几个:
async:以非同步的方式执行文件系统的输入输出动作。
atime:每次存取都更新inode的存取时间,这也是mount命令的默认选项。 defaults:使用默认的选项。默认选项为rw、suid、dev、exec、anto nouser
第13页,共17页
http://onlyzq.cublog.cn
与async。
dev:可读文件系统上的字符或块设备,取消选项为nodev。 exec:可执行二进制文件,取消选项为noexec。 noatime:每次存取时不更新inode的存取时间。 nodev:不读文件系统上的字符或块设备。 noexec:无法执行二进制文件。
remount:重新加载设备,通常用于改变设备的设置状态。 ro:以只读模式加载。 rw:以可读写模式加载。
sync:以同步方式执行文件系统的输入输出动作。 acl:支持ACL功能。
mount命令是Linux系统使用过程中非常常用的命令之一,下面看几个mount命令的例子。
挂载磁盘分区
使用mount命令挂载磁盘分区时,挂载点必须是一个已经存在的目录,在下面的例子中“/mnt/sdb6”就必须已经存在。在挂载完成后,所有对“/mnt/sdb6”中内容的操作都会被保存到“/dev/sdb6”的分区中。
[root@srv ~]# mount /dev/sdb6 /mnt/sdb6
mount命令是用于将一个设备挂载到一个目录上,如果使用“--bind”选项将一个挂载点再次挂载到另一个目录。在下面的例子中“/mnt/sdb6”已经是一个挂载点,使用“--bind”选项后可以对其再次进行挂载。
[root@srv ~]# mount --bind /mnt/sdb6 /mnt/sdb6bind
挂载光驱
在Linux中光驱和硬盘采用相同的命令方法,比如说有一个IDE接口的光驱,其设备编号就是/dev/hda。在RHEL 5.x中为/dev/hdc建立了二个符号链接分区是/dev/cdrom和/dev/cdrom-hdc,所有在只有一个IDE接口的光驱时,可采用下列三种方法中任意一种挂载。 [root@srv ~]# mount /dev/cdrom /mnt/cdrom [root@srv ~]# mount /dev/hdc /mnt/cdrom
[root@srv ~]# mount /dev/cdrom-hdc /mnt/cdrom
挂载U盘
U盘和USB硬盘在Linux中被认为是一个非IDE的设备,其设备名和一般硬盘的设备名相同。比如当计算机上有二个SCSI硬盘时,插入U盘后,U盘的设备名就是/dev/sdc。在下面的例子中将名为/dev/sdc的U盘的第一个分区挂载到/mnt/sdc1目录。 [root@srv ~]# mount /dev/sdc1 /mnt/sdc1
http://onlyzq.cublog.cn
第14页,共17页
挂载ISO映像文件
在Windows中使用ISO映像文件时,只能将其解压或使用虚拟光驱软件,而在Linux中可直接将一个ISO映像文件挂载到一个目录后,目录中的内容就是ISO映像文件中的内容。在下面的例子中将/iso/RHEL.iso文件挂载到/mnt/cdimage目录。 [root@srv ~]# mount -o loop /iso/RHEL.iso /mnt/cdimage
指定挂载选项
mount命令的“-o”选项可以对挂载的动作进行配置,指定挂载的各种方式。
挂载后该分区所有文件的所有者指定为UID是500的用户,拥有组指定为GID是500的用户组。该功能只能应用在vfat文件系统。
[root@srv ~]# mount -o uid=500,gid=500 /dev/sdb8 /mnt/vfat
挂载后让分区支持ACL功能。
[root@srv ~]# mount -o acl /dev/sdb5 /mnt/sdb5
将已经挂载的/dev/sdb9,重新挂载一次并加上acl选项。
[root@srv ~]# mount -o remount,acl /dev/sdb9
查看系统挂载情况
直接使用mount命令,可以查看系统中已经挂载的所有设备及挂载选项。其显示内容中除了直接使用mount命令挂载的设备以外,还包括在/etc/fstab文件中的内容。在显示内容的格式为“设备名 on 挂载点 type 文件系统(挂载选项)”。 [root@srv ~]# mount
/dev/sda7 on / type ext3 (rw) proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda8 on /tmp type ext3 (rw) /dev/sda6 on /var type ext3 (rw) /dev/sda3 on /home type ext3 (rw) /dev/sda2 on /usr type ext3 (rw) /dev/sda5 on /usr/local type ext3 (rw) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw)
/dev/sda10 on /media/sda10 type ext3 (rw,acl)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) none on /proc/fs/vmblock/mountPoint type vmblock (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
对于已经挂载的设备,如果不需要再使用可以使用umount命令卸载设备。该使用挂载时可以指定卸载点或设备名。
通过指定设备名进行卸载。
第15页,共17页
http://onlyzq.cublog.cn
umount /dev/sdb5
通过指定挂载点名进行卸载。
umount /mnt/sdb9
1.3.2 /etc/fstab配置文件挂载文件设备
使用mount命令挂载的所有设备在重新启动后就会失效,如果希望每次启动计算机后挂载信息还是有效的,就需要修改/etc/fstab文件。 [root@srv ~]# head -2 /etc/fstab LABEL=/ LABEL=/tmp
/ /tmp
ext3 ext3
defaults defaults
1 1 1 2
/etc/fstab文件中默认的内容是在安装系统时划分的分区信息。/etc/fstab文件每一行一条挂载信息,每一行分为6列,每列作用如下:
(1) 第1列:指定要挂载的设备,可以使用设备名或分区的卷标。如果指定卷标时
要保证卷标是唯一的。 (2) 第2列:指定挂载点。 (3) 第3列:指定文件系统系统。
(4) 第4列:指定挂载选项,该列就是使用mount命令通过-o指定的内容。 (5) 第5列:是否使用dump进行备份,“0”表示不备份,“1”表示进行dump备
份,“2”也是表示备份,但没有1重要。 (6) 第6列:是否以fsck检查分区,“0”表示不检查,“1”表示检查,“2”表示检查,不过1会较早被检查。挂载点为“/”的(即根分区),必须在这里填写
1,其他的都不能填写1。如果有分区填写大于1的话,则在检查完根分区后,接着按填写的数字从小到大依次检查下去。同数字的同时检查。
在挂载用户使用的分区时,一般第4列直接指定为“defaults”使用默认挂载选项即可;
第5、6列直接指定为“0”即可。如果将下面三行加入/etc/fstab文件后,每次开机时/dev/sdb5、/dev/sdb6会分别被挂载到/mnt/sdb5、/mnt/sdb6目录;光驱会被挂载到//mnt/cdrom目录。 /dev/sdb5
/mnt/sdb5
ext3
defaults 0 0
#在挂载选项列增加“,acl”表示挂载的分区要支持ACL功能。 /dev/sdb6 /mnt/sdb6 ext3 defaults,acl 0 0 #光盘的文件系统是“iso9660” /dev/cdrom /mnt/cdrom
iso9660
defaults 0 0
修改/etc/fstab文件后,需要重新启动计算机或使用如下命令使其配置生效。 mount -a
1.3.3 自动挂载
使用mount命令或通过/etc/fstab进行挂载时,不管使用还是不使用都会将设备挂载在系统里,而通过自动挂载是只有在访问时系统才会去挂载,不使用一段时间后系统会自动取消挂载。配置自动挂载的具体步骤如下。
http://onlyzq.cublog.cn
第16页,共17页
提示:自动取消的时间可以通过/etc/sysconfig/autofs文件中的“DEFAULT_TIMEOUT”进行配置。
(1) 修改/etc/auto.master文件。该文件是自动挂载服务的主配置文件,在文件中每
行一个可以指定多个自动挂载的目录。每行中需要指定一个已存在的目录作为
自动挂载的主目录,以及该主目录中所有自动挂载子目录的配置文件。在下面的例子中就指定了个自动挂载的主目录“/ctu”及配置文件“/etc/ctu.misc”。
[root@srv ~]# grep -v ^# /etc/auto.master /misc /etc/auto.misc
/ctu /etc/ctu.misc #指定了一个主目录“/ctu”,该目录必须是存在的。 /net -hosts
+auto.master
(2) 建立自动挂载的子配置文件。子配置文件的名称必须是在主配置文件
(/etc/auto.master)中已定义,比如上面的主配置文件中定义了一个子配置文件为“/etc/ctu.misc”,那以这里建立的子配置文件名必须是“/etc/ctu.misc”。
在子配置文件中就是定义在主目录下有多少可自动挂载的目录(这个挂载目录必须不存在)以及每个目录上需要挂载的设备。在RHEL 5.x中已经有一个子配置文件的例子名为“/etc/auto.misc”,可以先复制该文件后进行修改。在下面的例子中增加了二个目录,这二个目录的实际路径是“/ctu/jack”、“/ctu/chloe”,其中“/ctu”是在主配置文件中定义的一个已存在的目录,“jack”、“chloe”是二个不存在的目录,当用户浏览或进入这二个目录时,系统自己根据这里的配置进行挂载。
[root@srv ~]# cat /etc/ctu.misc #-fstype=ext3是指定挂载,可以用“,”分隔增加挂载选项。
jack -fstype=ext3 :/dev/sdb10 chloe -fstype=ext3,ro :/dev/sdb11
(3) 使用如下命令重新启动自动挂载服务。
[root@srv ~]# service autofs restart
Stopping automount: [ OK ] Starting automount: [ OK ]
自动挂载的配置每次开机会都会生效,但只有在用户使用的时候才会被挂载。 [root@srv ~]# cd /ctu
total 0
一但开始使用系统就会进行挂载。
在没有使用前是看不到自动挂载的子目录的。
[root@srv ctu]# ll
[root@srv ctu]# cd jack [root@srv jack]# ll total 16
drwx------ 2 root root 16384 Feb 19 15:25 lost+found
http://onlyzq.cublog.cn
第17页,共17页
因篇幅问题不能全部显示,请点此查看更多更全内容