1.

硬盘类型和Linux分区

分类: Linux系统与应用 2011-11-22 20:54 1404人阅读 评论(0) 收藏 举报

linuxide扩展ftp服务器服务器redhat

真怪自己知识不够啊,Linux系统倒是安装过几次了,但是一些知识还是不懂……

比如说,/dev/hda,/dev/hdb,/dev/sda,这个hda和sda是什么呢?它们有什么区别?

嗯,百度一下,查到了IDE,SATA,SCSI。这是什么东西啊?

是硬盘接口名,代指不同类型的硬盘,我的硬盘是“希捷7200转SATA硬盘”,中关村OL上的硬盘分类为:SATA3.0,SATA2.0,SATA1.0,PATA,SAS。目前最流行的当然就是SATA3.0硬盘了,最贵最高档的是企业专用SAS硬盘。

说明:

IDE,SATA,SCSI是硬盘的三个大类,技术上有较大区别。其中SCSI最先进,当然价格也更贵。

ATA、Ultra ATA、DMA、Ultra DMA等接口都属于IDE硬盘,PATA估计就是Ultra ATA了。

SAS即串行连接SCSI,是新一代的SCSI技术。

好了,明白硬盘类型了,接下来分析/dev/hda和/dev/sda。

hda、sda其实是不同设备的名称,详细情况见下表:

装置

装置在Linux内的文件名

IDE硬盘机

/dev/hd[a-d]

SCSI/SATA/USB硬盘机

/dev/sd[a-p]

USB快闪碟

/dev/sd[a-p](与SATA不同)

软盘驱动器

/dev/fd[0-1]

打印机

25针: /dev/lp[0-2]

USB: /dev/usb/lp[0-15]

鼠标

PS2: /dev/psaux

USB: /dev/usb/mouse[0-15]

当前CDROM/DVDROM

/dev/cdrom

当前的鼠标

/dev/mouse

其中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。

那么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个逻辑分区。

其中MBR(主引导记录),它有512字节,貌似有些玄机(和启动有关),不过多研究了。

至于Linux的实际分区,本文不作过多研究,我只知道,Linux的分区很有讲究,
比如有基于FTP服务器的分区方案,有基于文件服务器的分区方案等等。我们知道Linux系统多被企业用来作服务器,其中包括各种各样的服务器。比如,我
所知道的HTTP服务(通常是Apache和Tomcat),文件服务(常用的是NFS服务器,例如一个Team,各个客户端都可以挂载主机的一个目录,
方便共享文件),FTP服务(这个不解释,最常用的是VSFTP,Pure-FTP也用得比较多)。

菜鸟的分区方案是:

swap分区,2048MB=2GB

/boot分区,200MB

/(主分区),30GB

或者

swap分区,2GB

/home分区,20GB

/(主分区),10GB

下面给出一个较好的分区方案(自用WIN7+REDHAT9.0双系统)

swap大小为3GB

/boot大小为200MB

/大小为2GB

/usr大小为15GB

/home大小为20GB

/var大小为5GB

将/usr,/home,/var独立出来分区,便于管理,一般企业级的服务器都会把这几个独立出来。当然这个方案并不是最优的方案。有些情况会把/tmp也独立出来,或者把/tmp和/root都删掉,在/var下重新做链接。

至于格式嘛,ext3还是ext4?我用的ext3,Ubuntu工作站都是用的ext3而非ext4我想还是有一定原因吧,而且我的Linux本来就是老版本的REDHAT9.0。

PS:分区的时候,遇到(hd0,4),
(hd1,0)什么的,又把我搞糊涂了……

GRUB是什么?怎么区分各个分区的编号?
(hd0,1)还是(hd1,0)?

GRUB是一个引导程序,它被安装在MBR(Master
Boot Record即“主引导记录”)用于在启动时告诉电脑该启动哪一个OS(Operation
System即“操作系统”),包括windows在内,每一个OS都需要引导才能启动,windows的引导程序是MS的ntload(NT内核的系
统,如XP,Vista),安装XP
时会自动安装(不需要也不会询问你是否愿意),它只会寻找已被激活的主分区并把控制权交给这个分区的引导区(不是MBR)。而GRUB就要强大得多了,它
不但可以完成ntload的动作(即引导windows),而且可以引导linux、Mac
OS,solaris,free
BSD等等,而且可以在出错时报错,并提供简单的用户交互(命令行)。当然由于都要安装到MBR,所以GRUB不能和ntload共存于同一块硬盘
(grub4dos除外)。

GRUB会将BIOS检测到的所有硬盘编号,从0开始计数,0,1,2,3……,所以就是hd0,hd1,hd2,hd3……,hd就是hard
disk即硬盘(SATA和IDE硬盘都是hd)。

那么到底那一块硬盘对应hdx呢?
首先,如果你是单硬盘的话,不用想了,只会是hd0。那么如果有两块或更多的硬盘呢?你可以这样:在开机检测出现BIOS画面时,等到全部硬盘的数据出现
时,立即按下“Pause”键(我的位于“Page
Up”键的上方),这时启动过程会暂停,然后仔细看看吧。比如我有四块硬盘————两块IDE的,分别是40G、160G,还有两块SATA的,分别是
80G和320G。BIOS检测顺序是这样:IDE40,IDE160,SATA320,SATA80,所以GRUB表示
为:IDE40(hd0),IDE160(hd1),SATA320(hd2),SATA80(hd3),就这样啦,赶快记下吧!
注意:这里有一个变数:启动盘顺序。
还是上面的例子,因为我的GRUB安装在SATA320的MBR,并且平时就是用这块硬盘启动电脑,所以这时候SATA320中的GRUB认为我的硬盘应该这样编号:SATA320(hd0),IDE40(hd1),IDE160(hd2),SATA80(hd3)。
呵呵,明白了吧!GRUB编号的原则是这样的:
1.多快硬盘的顺序完全照抄BIOS检测结果;
2.启动盘一定是hd0(不管BIOS如何),其他硬盘依次按BIOS检测结果重排。
3.不管IDE还是SATA,一律认作IDE硬盘!即不使用类似(sd0,0)这样的编号,这个和linux的方式不同喔!

大家知道同一块硬盘最多只能共存四个主分区,所以对于hd0硬盘,依次是
(hd0,0)、(hd0,1)、(hd0,2)、(hd0,3),这是只分出四个主分区的情况,这个编号永远固定不变;不过这样的话,你就无法使用更多
的分区了,所以通常应该牺牲掉一个主分区(通常是最后一个)把它转换为扩展分区(extend),以便在其中再细分出更多的逻辑分区(logic)。逻辑
分区一律从(hd0,4)开始编号(因为0~3被主分区占据了),依次为(hd0,4)、(hd0,5)、(hd0,6)、(hd0,7)……
ok,对于大多数人来说,两个以上的主分区根本没用,所以惯常的做法是————一个主分区、一个扩展分区(包含若干个逻辑分区)。所以,惯常会使用在同一
块硬盘上的编号是:(hd0,0)、(hd0,4)、(hd0,5)、(hd0,6)……。以此类推,第二硬盘是
(hd1,0)、(hd1,4)、(hd1,5)、(hd1,6)……。

而linux的编号方法又和GRUB不同。是严格按照BIOS检测结果,第一硬盘是sda,第二硬盘是sdb,第三硬盘是sdc……,而不管哪个是启动盘。具体来说,我用第三硬盘启动的系统,GRUB认为它是(hd0),而linux依然认为它是sdc,明白?

但貌似,Ubuntu自8.04起,所有硬盘都编号为“sdx”,即不管IDE还是SATA,一律认作SCIS硬盘。

硬盘类型和Linux分区的更多相关文章

  1. 硬盘类型和Linux的分区

    目前硬盘主要分为以下几种:IDE,SCSI,SATA,SAS.其中SAS(Serial Attached SCSI)即串行连接SCSI,属于SCSI的新一代技术. 以下是Linux常见设备的名称: 装 ...

  2. linux:在vmware上模拟新加一个硬盘对其格式化分区

    在实际情况中,很容易有系统硬盘空间不够,然后需要添加新硬盘情况:这里我用vmware来模拟实验: 一:在一个Linux vmware上创建一个虚拟硬盘   1.打开vmware,选择一个已经搭建好的l ...

  3. linux 分区

    1.硬盘分区分为基本分区和扩展分区, 扩展分区分下去就是逻辑分区,而且逻辑分区没有数量上的限制. 2.查看linux系统分区具体情况 fdisk - l 3.查看某个目录是哪个分区下的 df /boo ...

  4. Linux 分区和目录解析

    转自:http://www.cnblogs.com/apprentice89/archive/2012/12/17/2821332.html 计算机中存放信息的主要的存储设备就是硬 盘,但是硬盘不能直 ...

  5. linux 分区格式查看

    Linux分区格式查看 两个文件 /etc/fstab 和/etc/mtab /etc/fstab是用来存放文件系统的静态信息的文件,当系统启动的时候. 系统会自动地从这个文件读取信息,并且会自动将此 ...

  6. linux 分区 物理卷 逻辑卷

    今天我们主要说说分区.格式化.SWAP.LVM.软件RAID的创建哈~ 格式化 查看当前分区:fdisk   -l 这个命令我们以前是讲过的,我现在问下,ID那项是什么意思? 83 是代表EXT2和E ...

  7. linux分区和文件系统

    linux分区主分区:最多只能有4个扩展分区:最多只能有一个 主分区+扩展分区最多4个 扩展分区不能写入数据,只能包含逻辑分区 见图示:fq.png 主分区:总共最多只能分4个扩展分区:只能有1个,也 ...

  8. Linux分区

    硬盘分区主要分为基本分区和扩展分区两种,基本分区和扩展分区的数目之和不能大于四个.且基本分区可以马上被使用但不能再分区.扩展分区必须再进行分区后才能进行使用,也就是说它必须进行二次分区.扩展分区再分下 ...

  9. linux 分区与挂载

    流程:分区-格式化-挂载 1.添加硬盘 使用fdisk -l命令查看磁盘状态 此处可以看到两块硬盘sda和sdb,第一块硬盘sda是装好系统的.sdb硬盘是未进行分区的. 本例将这个20G的硬盘分区, ...

随机推荐

  1. Altium Designer 编译原理图出现has no driving source警告解决办法

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 作者:struct_mooc 博客地址:https://www.cnblogs.com/stru ...

  2. Vue中,过滤器的使用方法!

    Vue.js允许自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方:双花括号插值和v-bind表达式.过滤器应该被添加在JavaScript表达式的尾部,由“管道”符号指示:(借官方的 ...

  3. react 基础语法使用

    刚开始不久react,在菜鸟上及其他前辈网站上学习,下面开始我的自学笔记. 包括: 渲染元素 组件(函数方法定义.es6 class定义) 事件处理 条件渲染 列表 下面代码部分将不会再写html部分 ...

  4. Gcc 安装过程中部分配置

    Gcc 安装过程中部分配置详解 全文参考<have fun with Gcc>一文,如有需要请联系原作者prolj@163.com 解压gcc源码后,需要进行configure,这时候一般 ...

  5. openstack云主机冷迁移

    1:开启nova计算节点之间互信 冷迁移需要nova计算节点之间使用nova用户互相免密码访问 默认nova用户禁止登陆,开启所有计算节点的nova用户登录shell. usermod -s /bin ...

  6. centos 7 安装 Oracle 12c

    #!/bin/bash #!/usr/bin/expect -f #/etc/sysctl.conf --bash-srcipts-- echo 'net.ipv6.conf.all.disable_ ...

  7. Stopwatch简单时间检测

    public ActionResult Index() { Stopwatch sw = new Stopwatch(); //实例化一个对象 sw.Start(); //开始计算 int[] a = ...

  8. 标准C语言(13)

    函数指针可以作为形式参数使用,会作为实际参数使用的函数叫回调函数 /* * 回调函数演示 * */ #include <stdio.h> void print_cb(int *p_num) ...

  9. 用xshell连接l自己的inux

    有时候连接会提示失败(当然确保账号密码没错),这里需要安装一个服务,ssh服务器 1)ubuntu安装ssh服务器 sudo apt-get install openssh-server 2)出现问题 ...

  10. 生产环境跑PHP动态程序

    Nginx + PHP5(FastCGI)生产环境跑PHP动态程序可超过“700次请求/秒”   我生产环境下的两台Nginx + PHP5(FastCGI)服务器,跑多个一般复杂的纯PHP动态程序, ...