linux 分区
1.硬盘分区分为基本分区和扩展分区, 扩展分区分下去就是逻辑分区,而且逻辑分区没有数量上的限制。
2.查看linux系统分区具体情况
fdisk - l
3.查看某个目录是哪个分区下的
df /boot/
查看分区使用情况。
df -h
0. 背景:
inux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
1. 硬盘类型 /dev/sda VS /dev/hda
/dev/sda
- ide (integrated drive electronics) 把盘体和控制器集成在一起
- sata (serial ATA(advanced technology attachment))
- scsi (small computer system interface)
- 光纤通道 fibre channel
其中hda、hdb分别代表第一个IDE、第二个IDE。假如你电脑上插有2个IDE硬盘,就会出现hda、hdb吗?不一定,因为貌似IDE硬盘默认有两个部分,Master和Slave,即主分区和扩展分区,而且a、b是根据IDE接口插槽顺序来分的。这样的话,第一IDE插槽主分区为hda,扩展分区为hdb,第二IDE插槽主分区为hdc,扩展分区为hdd。
但是SATA硬盘好像没有扩展分区,而且Linux识别SATA等类型装置的顺序不是按插槽顺序来的,是按照设备被侦测到的顺序来定的,比如SATA的第1、5插槽分别插有硬盘,电脑上还插有一个USB,那么启动Linux的时候,先后侦测到SATA的第1、5插槽的硬盘和USB设备,那么分配的名称就分别是sda,sdb,sdc。
但貌似,Ubuntu自8.04起,所有硬盘都编号为“sdx”,即不管IDE还是SATA,一律认作SCIS硬盘。
2. 分区
计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区。主分区是能够安装操作系统,能够进行计算机启动的分区,这样的分区可以直接格式化,然后安装系统,直接存放文件。
在一个MBR分区表类型的硬盘中最多只能存在4个主分区。如果一个硬盘上需要超过4个以上的磁盘分块的话,那么就需要使用扩展分区了。如果使用扩展分区,那么一个物理硬盘上最多只能3个主分区和1个扩展分区。扩展分区不能直接使用,它必须经过第二次分割成为一个一个的逻辑分区,然后才可以使用。一个扩展分区中的逻辑分区可以任意多个。
磁盘分区后,必须经过格式化才能够正式使用,格式化后常见的磁盘格式有:FAT(FAT16)、FAT32、NTFS、ext2、ext3等。
那么sda1、sda2又分别代表什么呢?代表分区(Partition),比如
- P1:/dev/hda1
- P2:/dev/hda2
- L1:/dev/hda5
- L2:/dev/hda6
- L3:/dev/hda7
- L4:/dev/hda8
- L5:/dev/hda9
为什么没有hda3、4呢?因为P1~4保存给了Primary和Extended分区。一个硬盘的结构如下:
MBR|主分区1|主分区2|主分区3|主分区4(扩展分区)|, 其中扩展分区可以分为: |逻辑分区1|逻辑分区2|……|逻辑分区n|
所以说上面的P1、2指明系统有两个主分区,L1~5代表有5个逻辑分区。主分区(包括扩展分区)的总个数不能超过四个;也不能把扩展分区包围在主分区之间。
参考: http://blog.csdn.net/zollty/article/details/7001950
fdisk 命令
root@dev:/home/s1# fdisk -l
Disk /dev/sda: 250.1 GB, 250059350016 bytes //这个硬盘有250.1 GB的容量
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors //255个磁头;63个扇区每磁道,30401个磁柱
Units = sectors of 1 * 512 = 512 bytes //每个 cylinder(磁柱)的容量是512字节
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000d7bf1
存储容量=磁道(柱面)数×磁头数×每道扇区数×每扇区字节数 = 30401 * 255 * 63 * 512 = 25396387380 bytes
Device Boot Start End Blocks Id System //Start (开始)/End (结束):表示的一个分区从X cylinder(磁柱)开始/结束
/dev/sda1 * 2048 484298751 242148352 83 Linux //引导(Boot):表示引导分区,在上面的例子中 hda1 是引导分区
/dev/sda2 484300798 488396799 2048001 5 Extended //Blocks:表示的意思的确是容量的意思,其单位是K
/dev/sda3 484298752 484300797 1023 83 Linux
/dev/sda5 484300800 488396799 2048000 82 Linux swap / Solaris //大小,2048000/1024=2G
奇怪:这里start和end的磁柱怎么远远超过30401?
这里有一个主分区sda1,一个扩展分区sda2,sda2包括两个逻辑分区sda3和sda4.
硬盘总容量=主分区(包括扩展分区)总容量
- 主分区大小为 242148352 /1024 = 236473 M = 236 G
- 扩展分区大小为:2014001 / 1024 = 2000M = 2G
- 磁盘总容量大小为:236 + 2 = 238G
扩展分区容量=逻辑分区总容量
我们估算一个硬盘是否完全被划分,我们只要看 fdisk -l 输出的内容中的 cylinders(柱体) 上一个分区的End 和 下一个分区的Start是不是一个连续的数字,另外要看一下每个硬盘设备的fdisk -l 的开头部份,看一下他的 cylinders(柱体)的值。可见上图中,扩展分区都分完了。
df -h 命令:
注: df 下没有显示swap分区
改变Linux分区大小
1. linux根分区容量是不允许改变的,一旦改变,挂载根分区就找不到磁盘首尾位置,导致启动失败
2.实在要改变,推荐用gparted-LiveCD进行调整
一、准备
1、下载最新版本的gparted镜像文件:http://sourceforge.net/project/s ... p;package_id=173828
2、将gparted镜像文件刻录成光盘或压制在U盘上制成LiveUSB
3、虽说是无损调整,但为了安全起见(万一停电咋办?),建议备份重要数据到移动硬盘上
4、在BIOS中,将启动顺序设置为首先光驱启动(如果是用LiveUSB,应设为USB-HDD)
二、调整分区
1、将光盘放入光驱(如果是用LiveUSB,插上U盘),重启电脑
2、进入gparted启动界面,直接选Defalt settings
3、第二个界面继续按回车7 y: O. l3 A" E/ P N0 L: j
4、接下来选语言,输入“26”回车(就是简体中文,尽管汉化不全)
5、接着提示将要进入X-Windows界面,回车
6、进入gparted,就会发现和瘟到死的PQ相似的界面,实际操作也是一样的,而且也支持瘟到死分区的调整
7、点击你要腾出空间的分区,弹出右键菜单选择“Resize/Move”& Z)
8、用鼠标托动或数字精确调整要释放的空间大小,若要释放在分区头部拉左侧的控制条(输入第一行数值),若要释放在分区尾部拉右侧的控制条(输入第三行数值),调整好之后点“更改大小/移动”按钮。
9、点击欲扩大容量的分区,弹出右键菜单选择“Resize/Move”
10、按照第8步的方法操作,只是现在变成扩大分区容量而已
11、点击“Edit”菜单,选择“Apply All Operations”3
12、再次确认要调整分区容量后,gparted开始调整分区,完成后点“Close”按钮
13、点“gparted”菜单,选“Quit”关闭gparted窗口,再双击左上角的“Exit”按钮退出gparted系统
14、在弹出的窗口中选“Reboot”重启电脑,退出时系统会提示你取出光盘
三、可能存在的问题
可能会发生swap分区丢失的情况,可在终端中用“free -m”命令查看swap分区是否激活(是否显示容量),如果未激活,可用“sudo mkswap /dev/sdaX”命令(X为swap分区的编号)进行激活,并将激活所得的UUID码替换掉“/etc/fstab”文件(需要管理员权限)中原来 swap分区的UUID编码,重启后即可自动激活挂载
具体操作方法,请进Ubuntu官方论坛中查找,有教程帖8 z. \0 s8 }- M& c
警告:对swap分区的激活操作及对fstab文件的修改应谨慎,必需仔细核对修改的值
3. 挂载和挂载点
一个挂载点就是一个文件夹,将分区挂载到一个挂载点,挂载点就成了分区的入口。没有挂载分区的挂载点将使用根目录的空间,没有挂载到挂载点的分区是无法访问的,如上边第四个逻辑分区。
例如,如果分区 /dev/hda5 被 挂载在 /usr 上,这意味着所有在 /usr 之下的文件和目录在物理意义上位于 /dev/hda5 上。因此文件 /usr/share/doc/FAQ/txt/Linux-FAQ 被储存在 /dev/hda5上,而文件 /etc/X11/gdm/Sessions/Gnome 却不是。
继续以上的例子,/usr 之下的一个或多个目录还有可能是其它分区的挂载点。例如,某个分区(假设为,/dev/hda7)可以被挂载到 /usr/local 下,这意味着 /usr/local/man/whatis 将位于 /dev/hda7 上而不是 /dev/hda5 上。
linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。
注意:1、挂载点必须是一个目录。
2、一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。对于其他操作系统建立的文件系统的挂载也是这样。但是需要理解的是:光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、NTFS。
挂载前要了解linux是否支持所要挂载的文件系统格式。
挂载时使用mount命令:
格式:mount [-参数] [设备名称] [挂载点]
其中常用的参数有
-t<文件系统类型> 指定设备的文件系统类型,常见的有:
minix linux最早使用的文件系统
ext2 linux目前常用的文件系统
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 网络文件系统
iso9660 CD-ROM光盘标准文件系统
ntfs windows NT 2000的文件系统
hpfs OS/2文件系统
auto 自动检测文件系统
-o<选项> 指定挂载文件系统时的选项。有些也可用在/etc/fstab中。常用的有
codepage=XXX 代码页
iocharset=XXX 字符集
ro 以只读方式挂载
rw 以读写方式挂载
nouser 使一般用户无法挂载
user 可以让一般用户挂载设备
提醒一下,mount命令没有建立挂载点的功能,因此你应该确保执行mount命令时,挂载点已经存在。(不懂?说白了点就是你要把文件系统挂载到哪,首先要先建上个目录。这样OK?)
例子:windows98装在hda1分区,同时计算机上还有软盘和光盘需要挂载。
# mk /mnt/winc
# mk /mnt/floppy
# mk /mnt/cdrom
# mount -t vfat /dev/hda1 /mnt/winc
# mount -t msdos /dev/fd0 /mnt/floppy
# mount -t iso9660 /dev/cdrom /mnt/cdrom
现在就可以进入/mnt/winc等目录读写这些文件系统了。
自动挂载:
在/etc/fstab文件里,第一列是挂载的文件系统的设备名,第二列是挂载点,第三列是挂载的文件系统类型,第四列是挂载的选项。添加新行实现自动挂载:
/dev/hdb1 /mnt/winc vfat defaults,codepage=936,iocharset=cp936 0 0
/dev/hda5 /mnt/wind vfat defaults,codepage=936,iocharset=cp936 0 0
4. LVM几个基本概念
操作:
linux 分区的更多相关文章
- linux 分区 物理卷 逻辑卷
今天我们主要说说分区.格式化.SWAP.LVM.软件RAID的创建哈~ 格式化 查看当前分区:fdisk -l 这个命令我们以前是讲过的,我现在问下,ID那项是什么意思? 83 是代表EXT2和E ...
- linux分区和文件系统
linux分区主分区:最多只能有4个扩展分区:最多只能有一个 主分区+扩展分区最多4个 扩展分区不能写入数据,只能包含逻辑分区 见图示:fq.png 主分区:总共最多只能分4个扩展分区:只能有1个,也 ...
- Linux分区
硬盘分区主要分为基本分区和扩展分区两种,基本分区和扩展分区的数目之和不能大于四个.且基本分区可以马上被使用但不能再分区.扩展分区必须再进行分区后才能进行使用,也就是说它必须进行二次分区.扩展分区再分下 ...
- Linux分区有损坏修复
如果Linux分区有损坏情况,启动有问题,不能正常进入文本或图形界面.那么一般会出现提示,需要输入Root密码登录后采用fsck -t ext3 -r /usr/local 修复 , /usr/loc ...
- 借Windows说明Linux分区和挂载点[转]
在介绍Linux分区和挂载点前,我想先说一个Windows的例子,Windows大家都比较熟,再借这个例子来说明什么是Linux分区和挂载点. 1.消失了的分区 在WinPE下,我将一块硬盘分成一个主 ...
- windows下能读写linux分区的软件 转
1. ext2ifs 这个工具与explore2fs都是John Newbigin使用Delphi写的,explore2fs Copyright (C) 2000,Ext2IFS v0.3 Copyr ...
- VMware虚拟机中调整Linux分区大小——使用gparted
虚拟机分配了50G大小的空间,最近发现不够用,于是将扩展一下分区的大小,查了几种方法都不是很好,后来借助了gparted分区空间完成了,这个工具简单,方便,下面就简单的介绍一下.扩展分区主要要分为两步 ...
- VMware虚拟机中调整Linux分区大小手记(转发)
前段时间用VMware5.5安装了CentOS5.3,安装的时候分配了5Gb的虚拟硬盘空间给Linux系统,系统安装选择很多组件和软件,后面使用时又安装也一些软件,结果导致虚拟硬盘空间不足.查看分 ...
- Linux 分区和目录解析
转自:http://www.cnblogs.com/apprentice89/archive/2012/12/17/2821332.html 计算机中存放信息的主要的存储设备就是硬 盘,但是硬盘不能直 ...
随机推荐
- thinkphp action.class.php 学习
控制器类(Action) 描述 Description ThinkPHP Action控制器基类 抽象类 位置:ThinkPHP/Lib/Core/Action.class.php 声明: abstr ...
- weekly review
鉴于某位昔日工作在我身边的大师一直在写review,所以为了能靠近大师,我也要开始写review了. 无名师曾经说过,想要成为大师的话,要先找到一个大师,然后追随大师,再然后与大师通行,之后成为大师, ...
- CentOS-6.4安装配置Nginx
在安装nginx前,需要确保系统安装了g++.gcc.openssl-devel.pcre-devel和zlib-devel软件.安装必须软件: [root@admin /]#yum install ...
- 通过Web Deploy方式部署WCF
如何发布WCF, 其实它有很多种方式去发布WCF服务到IIS上,这篇文章将介绍通过Web Deploy的发布方式去部署. 步骤: 在IIS上创建一个网站 打开IIS, 右击“Site” -> & ...
- Ant快速入门(四)-----Ant的任务(Task)
到目前为止,我们已经掌握了Ant生成文件的基本结构,以及<project.../>,<target.../>,<property.../>等元素的配置方式.而< ...
- 使用putty登陆cygwin出现server unexpectedly ...error.解决方案
将cygwin安装目录下/etc/passwd中的passwd文件中user:unused:32707:10513:U-CYOU-INC\user,S-1-5-21-2645613570-259884 ...
- 转:更改 centos yum 源
centos下可以通过yum很方便快捷的安装所需的软件和库,如果yum的源不好,安装速度会非常慢,centos默认官方源似乎都是国外的,所以速度无法保证,我一直使用163的源,感觉速度不错.下面就说说 ...
- Steps
uva846:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_proble ...
- cf C. Counting Kangaroos is Fun
http://codeforces.com/contest/373/problem/C 贪心,先排序,然后从n/2位置倒着找每一个可不可以放到别的袋鼠内. #include <cstdio> ...
- ISO7816协商模式和特定模式
ISO7816协议的协商模式和特定模式好多使用者都搞不明白,还经常有客户电话询问,这里将其澄清一下: ISO7816协议的协商模式和特定模式由复位应答字节TA2确定,下面是TA2的字节定义 TA2的存 ...