Linux分区和挂载(mount命令的学习)

当Windows系统出现问题的时候,可能需要重装系统,这个时候我们往往会使用系统盘将系统重新安装在C盘上,其他盘上的文件都没有受到重装系统的影 响,这就是分区的好处之一。同样,在Linux中也需要分区,但是Linux中对于分区的表示方式与Windows并不一样。下面将以我的电脑为例,讲述 Liunx的分区方法并且通过讲述Linux的启动过程来了解Linux系统和挂载。(本文章适合初学Linux的同学学习)
1.基本概念
1.1.分区的概念
分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录和引导记录备份的存放位置。而对于文 件系统以及其他操作系统管理硬盘所需要的信息则是通过之后的高级格式化。安装操作系统和软件之前,首先需要对硬盘进行分区和格式化,然后才能使用硬盘保存 各种信息。各个分区之间是相对独立的,你在一个分区上的操作不会影响到另一个分区。
之前我们都会认为C盘就是第一分区,D盘就是第二分区。其实这种看法是不恰当的,C盘,D盘等都是盘符号,是Windows赋予的名称。在没有启动 Windows之前,它们就是一个个分区,而不是具体的盘符。这种盘符的概念,是Windows“内在”的,也就是说就算是硬盘上没有安装Windows 系统,硬盘上的分区还是存在的。所以可以这样说:盘符-是软件级的概念;分区-是硬件级的概念。
1.2.Linux文件系统的组织方式
Linux文件系统的组织方式称做文件系统分层标准,即采用层次式的树状目录结构。在此结构的最上层是根目录“/”,然后在此根目录下是其他的目录和子目 录。Linux和Windows一样,采用“路径”来表示文件或目录在文件系统中所处的层次。路径由以“/”为分隔符的多个目录名字符串组成,分成绝对路 径和相对路径。Linux中所谓绝对路径是指由根目录“/”为起点来表示系统中的某个文件或者目录的位置的方法;相对路径则是以当前目录为起点,表示系统 中某个文件或者目录在文件系统中的位置的方法。例如(以我电脑为例):在终端输入pwd(Linux中的显示当前所在位置的命令),终端显示了
“/home/csc”,这就是绝对路径。假如csc文件夹下有一个test文件夹,在终端输入"cdtest"(或者cd./test),test或 者./test就是相对于csc文件夹的相对路径,其中“./”表示当前目录,通常可以省略。下面介绍一下Linux中部分目录及其功能说明(以便后面讲 述Linux分区和启动过程)
/:Linux文件系统的最上层目录,其他所有目录均是该目录的子目录
/bin:Binary的缩写,存放用户的可执行程序,例如cp和mv等;也存放Shell,如bash和csh。不应把该目录放到一个单独的分区中,否则LinuxRescue模式无法使用这些命令。
/boot:内核就放在这里;操作系统启动时所需的文件,包括vmlinuz和initrd.img等,这些文件若损坏常会导致系统无法正常启动,因此最好不要做任意改动
/dev:设备文件目录,例如/dev/sda表示第一块SCSI设备,/dev/hda表示第一块IDE设备(后面会讲到Linux中对SCSI和IDE接口硬盘的表示方法)
/home:普通用户的主目录或FTP站点目录,一般存放在/home目录下。(想要了解Linux中其他默认目录中的功能,请查看:http://www.xtzj.com/read-htm-tid-69582.html)
1.3.Linux中的挂载点
Windows系统下的分区很明了,一个分区就是一个盘符。如果有可以兼容的文件系统,系统也可以读写那个分区。如果是不兼容的文件系统,Windows就会忽略这个分区。
Linux就是把所有的一切都放到一颗“大树”下。如果你有另外的分区或者硬盘,它们就会“挂载”到枝干的子目录中,例如/media或者/mnt目录,这个子目录就是所谓的挂载点,你可以将分区挂载到任意的目录中。
2.分区的建议
分区关系到一个系统的安全性和健壮性,当系统出现问题的时候,我们应该以最小的改动来完成系统的修复,这样就能减少不必要的损失。
在安装Linux系统时候,我将硬盘分为四个分区:第一个分区挂载在“/”目录下,第二个分区挂载在“/boot”下,第三个分区挂载在“/home”下,第四个分区是交换分区(Swap分区)
理由:
(1)一个根分区。根分区是挂载在“/”目录上的。用来存放系统文件。
(2)“/home”分区:这是用户的home目录所在地;它的大小取决于你的Linux系统有多少用户,以及这些用户将存放多少数据。当你系统受损需要重新安装的时候,不会影响到“/home”分区下的文件。
(3)“/boot”分区:包含了操作系统的内核和在启动系统过程中所要用到的文件。独立挂载/boot的好处是可以让多个Linux共享一个 /boot。“/boot”目录的大小通常都很小,20MB左右。可以根据自己的硬盘空间分配一块给/boot分区,但是不要太大,否则是种浪费。
(4)一个交换(swap)分区。交换分区用来支持虚拟内存。如果你的计算机内存小于16MB,就必须创建交换分区。即使你有更多的内存,仍然推荐使用交 换分区。物理内存小于或等于512MB,建议分配实际物理内存容量2倍大小的swap;物理内存大于512MB,建议分配与物理内存等容量的swap。
3.Linux的启动过程(以我的电脑为例)
系统的启动是从读取grub.cfg开始的(grub一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同 时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数)。 grub.cfg文件的位置是在/boot/grub目录下。(如果电脑上安装的是双系统的话,也可以通过修改grub文件,来改变系统的启动顺序,等待 时间等。)将文件打开后文件中有这么一段:
menuentry'Ubuntu,Linux2.6.32-33-generic' --class ubuntu --class gnu-linux --class gnu--class os {
recordfail
insmodext2
setroot='(hd0,8)'
search--no-floppy --fs-uuid --set 089b3e37-bf9b-4811-94f8-b2f73fc313f6
linux /vmlinuz-2.6.32-33-genericroot=UUID=abdb3fa2-45cd-447d-8cc5-83cf326195bd ro quiet splash
initrd /initrd.img-2.6.32-33-generic
}
这是一个标准的ubuntu引导菜单,menuentry那一行显示了该项目的名称,insmod是Linux下的指令,是加载模块的意思。这里涉及到了分区的命名,下面就来了解一下:
Linux系统中存储设备的两种表示方法
(1)对于IDE接口的硬盘的两种表示方法
IDE接口中的整块硬盘在Linux系统中表示为/dev/hd[a-z],比如/dev/hda,/dev/hdb... ... 以此类推。另一种表示方法是hd[0-n],其中n是一个正整数,比如hd0,hd1,hd2... hdn ;如果机器中只有一块硬盘,无论(fdisk-l命令可查看硬盘及硬盘上的分区情况)列出的是/dev/hda还是/dev/hdb,都是hd0;如果机 器中存在两个或两个以上的硬盘,第一个硬盘/dev/hda另一种方法表示为hd0,第二个硬盘/dev/hdb,另一种表示是hd1。
(2)IDE接口硬盘分区的两种表示方法
硬盘分区的第一种表示方法/dev/hd[a-z]X,X是一个从1开始的正整数;比如/dev/hda1,/dev/hda2.....,如果X的值是1到4,表示硬盘的主分区(包含扩展分区);逻辑分区从是从5开始的,比如/dev/hda5肯定是逻辑分区。
硬盘分区的第二种表示方法(hd[0-n],y),前面已经说过了整块硬盘也有两种表示方法,一种是/dev/hd[a-z]的,另一种方法是hd[0- n];一个硬盘分区首先要确认在哪个硬盘,然后再确认它所在的位置;所以我们要知道一个硬盘分区,除了知道/dev/hd[a-z]以外,还要知道他在哪 个位置,确认了分区在/dev/hd[a-z]后,还要通过X来确认具体位置;y的值是/dev/hd[a-z]X中的X-1。
(3)关于SATA和SCSI接口的硬盘的两种表示方法
方法和IDE接口的硬盘相同,只是把hd换成sd。
下面通过实例来认识一下:在终端下输入fdisk-l命令(要在超级用户下查看):
Disk/dev/sda: 500.1 GB, 500107862016 bytes
255heads, 63 sectors/track, 60801 cylinders
Units= cylinders of 16065 * 512 = 8225280 bytes
Sectorsize (logical/physical): 512 bytes / 512 bytes
I/Osize (minimum/optimal): 512 bytes / 512 bytes
Diskidentifier: 0x48000000
DeviceBoot Start End Blocks Id System
/dev/sda1 * 1 13054 104856223+ 7 HPFS/NTFS
/dev/sda2 13055 60802 383529250+ f W95 Ext'd (LBA)
/dev/sda5 13055 32635 157284351 7 HPFS/NTFS
/dev/sda6 32636 52216 157284351 7 HPFS/NTFS
/dev/sda7 55329 55578 1998848 82 Linux swap / Solaris
/dev/sda8 55578 55640 498688 83 Linux
/dev/sda9 55640 60802 41459712 83 Linux
/dev/sda10 52217 55328 24996864 83 Linux
文件中的第一行:Disk/dev/sda: 500.1 GB, 500107862016 bytes,这个就是表示机器中只有一个硬盘设备/dev/sda,大小为500G;下面的就是硬盘的分区,每个分区都有详细的信息。
讲到这里,我们都会有点奇怪,既然上面说了IDE接口是hd表示,SATA和SCSI接口都是sd表示,那为什么grub文件有一行 “setroot='(hd0,8)'”代码呢?不应该是“sd”吗?通过在网上查找的相关资料,对于grub文件来说,硬盘都是用hd表示的,磁盘号是 从0开始计算的,分区号是则是从1开始计算的(grub2是从1开始计算的,grub1是从0开始计算的),而对于Linux内核来说,IDE硬盘是hd 表示的,SATA硬盘是用sd表示的,磁盘序号从a开始计算的,分区号是从1开始计算的。我电脑中的Linux系统是Ubuntu10.04LTS版
本,grub文件是grub2版本。所以grub文件中的(hd0,8)代表的是第一块硬盘上的第八个分区即sda8。
继续讲解上面的grub.cfg文件,search指令是寻找内核的意思,这就真正进入了Linux系统的引导过程,内核的存放位置是在/boot目录 下。下面一行中的linux是一个指令,它告诉grub程序使用后面给出的内核,于是这个名为“vmlinuz-2.6.32-33-generic”的 内核就被载入内存,并读取“root=UUID=abdb3fa2-45cd-447d-8cc5-83cf326195bd”这个分区的一些必要的文 件。上段代码中的最后一行的命令的意思是:用名为“/initrd.img-2.6.32-33-generic”的文件先在内存中构造一个“虚拟”的根
文件系统,以便于内核检测完硬件信息后载入必需的模块等等。grub的工作到此结束,下面将由Linux内核接管电脑的控制权,开始初始化阶段。到目前为 止还没有挂载根分区。然后Linux系统会读取一个名为fstab的文件,并按照其中的指令逐行的执行,下面来看一下fstab文件(/etc /fstab)。以下是我的电脑中的fstab文件:
#/etc/fstab: static file system information.
#
#Use 'blkid -o value -s UUID' to print the universally uniqueidentifier
#for a device; this may be used with UUID= as a more robust way toname
#devices that works even if disks are added and removed. See fstab(5).
#
#<file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
#/ was on /dev/sda10 during installation
UUID=abdb3fa2-45cd-447d-8cc5-83cf326195bd/ ext4 errors=remount-ro 0 1
#/boot was on /dev/sda8 during installation
UUID=089b3e37-bf9b-4811-94f8-b2f73fc313f6/boot ext4 defaults 0 2
#/home was on /dev/sda9 during installation
UUID=11ec48a8-5ca9-4e39-9bff-fd56b811d58e/home ext4 defaults 0 2
#swap was on /dev/sda7 during installation
UUID=2c80ec4a-769c-40c5-8d87-39a2332661cfnone swap sw 0 0
#号开头的行是注释,是说明性的文字,在执行指令的时候并不会执行它。
linux挂载分区的时候将自上而下,顺序执行。第一个起作用的行是proc,关于proc的介绍请查看http://www.2cto.com/os/201202/119553.html
首先要将sda10挂载到”/”下,这就是linux最先被挂载的根分区;然后继续把sda8挂载到“/boot”,sda9挂载到“/home”下,sda7“挂载”到交换分区,这个交换分区有点特殊,因为他并没有被“附属”于/,而是独立使用的。
到此为止,Linux中系统用到的分区都已经挂载完毕。可以使用系统了。
4.手动挂载分区
有人会问,当我需要使用Windows下的分区时怎么办?能不能在Linux下挂载Windows分区呢?答案是肯定的,如果你使用的是桌面版的 Ubuntu,并且是双系统,那么点击Linux中的“位置”->"计算机",里面就列出了Windows中的分区,点击右键,选择“挂载”就可以 了,默认是挂载在media目录下,我们可以通过命令设定想要挂载的分区及其要挂在到的位置,比如,我想要挂载/dev/sda5分区,其文件系统格式是 NTFS,把它挂载在/home/csc/music目录下。具体命令如下:
mount/dev/sda5 /home/csc/music
cd/home/csc/music
ls
执行上述命令,可以在music目录下查看sda5分区中的文件了。
卸载的命令也很简单,执行命令:umount/dev/sda(或者/home/csc/music)就OK了。
 
参考文献:
细说Linux挂载——mount:http://forum.ubuntu.org.cn/viewtopic.php?t=257333
Linuxproc:http://dqw19880428.blog.163.com/blog/static/2051131620093144735924/
Linux硬盘分区细节详谈: http://blog.csdn.net/freexploit/article/details/961330
时间: 2024-09-18 06:11:07

Linux分区和挂载(mount命令的学习)的相关文章

Linux:挂接(mount)命令的使用方法

http://www.linux-cn.com/html/test/20070412/754.shtml   挂接命令(mount) 首先,介绍一下挂接(mount)命令的使用方法,mount命令参数非常多,这里主要讲一下今天我们要用到的. 命令格式: mount [-t vfstype] [-o options] device dir 其中: 1.-t vfstype 指定文件系统的类型,通常不必指定.mount 会自动选择正确的类型.常用类型有: 光盘或光盘镜像:iso9660 DOS fa

linux系统上挂载windows分区和U盘的方法

1.支持ntfs分区 如果你的windows分区有ntfs格式的,要使linux支持ntfs格式,你可以通过编译内核实现,但最简单的方式是通过安装支持ntfs的rpm包实现. 单击右键,在快捷菜单里选择在此打开终端.在终端中输入uname -a查看内核版本,下载相应内核的rpm,我的rh9是kernel-ntfs-2.4.20-8.i686.rpm.在终端中输入 代码: rpm -ivh kernel-ntfs-2.4.20-8.i686.rpm 即可.(rpm为安装rpm包的命令,参数i 为显

Linux常见设备及相应/dev/xxx文件名、Mount Point、挂载点、Mount命令、fstab、挂载分区

Linux 中的设备有2种类型:字符设备(无缓冲且只能顺序存取).块设备(有缓冲且可以随机存取).这些设备中,有些设备是对实际存在的物理硬件的抽象,而有些设备则是内核自身提供的功能(不依赖于特定的物理硬件,又称为"虚拟设备").每个设备在 /dev 目录下都有一个对应的文件(节点). 常见设备及相应/dev/下的文件名:  /dev/usb/hiddev0 | /dev/usb/hiddev1 --- USB 字符设备(鼠标/键盘/游戏杆/手写版等人操作计算机的设备) /dev/uba

Linux挂载分区最常用的命令是mount

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   首先,你应当知道,windows下面的盘符,与一个个分区一一对应. 所以,我们以前看到的C盘.D盘等等,经常是对应于第一个分区.第二个分区. 在linux下面,这些分区以设备的形式出现,比如/dev/hda1 /dev/hda2等等,我们需要做的事情就是让这些设备一一对应于一个目录,这样说和以前的概念是否建立起一些联系了呢? 挂载分区最常用的命令是mount 格

Linux中用mount命令安装分区

现在我们要介绍一个在 Linux 中非常重要的命令"mount".这个命令用于将硬盘中的各个分区挂载到根分区的某个文件夹中,也可以称为安装文件系统.有些 Linux 发行版默认是不挂载除根分区之外的其它分区的,比如"RedHat 9".当然有一个被称为"swap"的交换分区例外.也有些 Linux 发行版在系统安装完毕后就可以自动挂载所有 Windows 分区,如"红旗 5.0".在我们学习"mount"命

linux 分区,格式化,挂载的命令详细介绍_Linux

linux下分区.格式化.挂载的命令         Linux 虽然一直都有在玩,但是对硬盘操作确实不是很熟悉,今天有空,就整理了下. 1.分区 fdisk -l 可以看到硬盘信息,类似/dev/sda,/dev/vda,/dev/hda这样的.sd是scsi口硬盘,sda是第一块,sdb是第二块.hd是IDE口硬盘,vd是虚拟硬盘 fdisk /dev/vda 用此命令来分区,分完区以后,/dev/vda就会变成/dev/vda1,/dev/vdb2之类的,多了数字,表示第N个分区 root

Linux 下使用mount命令挂载CDROM的方法

Linux显示所有的目录都在一个目录树下,而与它们位于哪一个驱动器或硬件无关. 在Linux下的磁盘内容作为子目录形式出现的,可移动介质的内容不会自动出现在这些子目录中,因此需要我们通过挂载驱动器来实现. 例如:用mount命令来挂载cdrom 命令: mount -t auto /dev/cdrom /mnt/cdrom 这命令就是把cdrom挂载在/mnt/cdrom目录中,这里我就可以访问里面的内容了. 挂载命令: homer@ubuntu: ~$ mount -t auto /dev/c

Linux中不编译内核,如何挂载mount ntfs分区

Linux中不编译内核,如何挂载mount ntfs分区? 找到对应内核版本(uhttp://www.aliyun.com/zixun/aggregation/11696.html">name -a)的ntfsrpm,安装即可.以原装rh8为例,未升级或编译内核1. 上google.com搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm3. mkdir /mnt/c4. mount

Linux下mount命令挂载windows共享文件步骤

挂接Windows文件共享 Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba软件包.现在流行的linux发行版绝大多数已经包含了samba软件包,如果安装linux系统时未安装samba请首先安装samba.可以到www.samba.org网站下载最.新的版本. 当windows系统共享设置好以后,就可以在linux客户端挂接(mount)了,具体操作如下: # mkdir –p /mnt/samba 注:建立