`
Lewis·Lee
  • 浏览: 66795 次
  • 性别: Icon_minigender_1
  • 来自: 台州
社区版块
存档分类
最新评论

Linux 分区指南 ——《Ubuntu Server 最佳方案》

阅读更多

<!-- [if !supportLists]-->1.1              <!-- [endif]-->Linux 文件系统结构介绍

Linux 操作系统有一些固定的目录。各种Linux 发行版的目录结构虽然不会一模一样,但是不会有很大差异。知道了这些目录的作用,不仅对你进行磁盘分区规划很有帮助,而且会让你以后的日常维护工作变得轻松。

Ubuntu 文件系统的主要目录如表2.2 所示。

2.2 Ubuntu Linux 文件系统的主要目录

  

英文全名

  

/

/

整个目录结构的起始点 ,所有其它文件和目录都在它下面

/bin

Binaries

用来存放最常用的二进制命令

/boot

Boot

包含引导Linux 的主要文件 ,如grub内核文件

/dev

Devices

所有设备都在该目录下,包括硬盘和显示器等

/etc

etc

系统的所有配置文件都放在它下面

/home

Home

存放各用户的主目录 ($HOME) 及其文件和配置

/lib

Libraries

系统的库文件 ,有点像WindowsProgram Files

/lost+found

lost+found

存放 系统异常时丢失的文件 ( 如突然宕机) ,以利于恢复

/media

Media

加载各种媒体,如光盘、软盘等

/mnt

Mount

加载各种文件系统

/opt

Optionally

用于存放安装的“可选”程序

/proc

Processes

包含进程等信息 ,是内存的映射,不是真实目录

/root

Root

该目录是root 用户的根目录

/sbin

System-only binaries

存放系统专用的二进制命令

/sys

System

存放系统信息

/tmp

Temporary files

存放临时文件

/usr

User

存放 普通用户的应用程序 ,库文件和文档等

/var

Variable files

存放那些在时间、大小、内容上会经常变化的文件

2.2 中各个目录的用途,你应该很了解才行。只要了解了各个目录的用途,你才能在硬盘分区时不至于犯下大的错误。

<!-- [if !supportLists]-->1.2              <!-- [endif]-->“分区”和“挂载点”

平时,我们在讨论Linux 的“分区”时,常常混淆“挂载点”和“分区”的概念。其实只要大家都能明白就可以,不必抠字眼。不过,作为Linux 系统管理员,我们还是应该弄明白这两个概念的差别。

我们平常所说的“/var 分区”,实际上说的是“挂载在/var 上的分区 ”,而/var ”只是一个挂载点 。那么什么是“分区”呢?

Linux 中,“分区”是一个一个的设备,放在/dev 目录下 。如果说IDE 硬盘,它们的名字应该是/dev/hda1/dev/hda2 等;如果说SATA 或者SCSI 硬盘,它们的名字则是/dev/sda1/dev/sda2 等。

<!-- [if !supportLists]-->1.3              <!-- [endif]-->硬盘分区的表示方法

那么什么是hdasda 呢?它们分别是Hard Driver Number ASCSI Driver Number A 的简写,也就是说,hdsd 指出了硬盘的接口类型,后面的a 则是序号,表示第几块硬盘。1 IDE 硬盘是hda 2 IDE 硬盘是hdb ,依此类推;第1SCSI 硬盘用sda 表示,那么第2SCSI 就是用sdb 表示了,依此类推,往后则是sdcsdd 等。

实际上,sd 表示的不仅仅是SCSI 设备。除了IDE 设备外,SCSISATAUSBFirewire 等接口的存储设备都是以sd 表示的。

现在你应该已经知道,/dev/sdb2 指的是2SCSI 硬盘的第2 个分区 ,而/dev/hda5 指的是第1IDE 硬盘的第5 个分区。

2.3 Linux 硬盘分区表示方法

 

IDE 接口硬盘

SCSI 接口硬盘

 

整个硬盘的表示方法

/dev/hda

/dev/hdb

/dev/hdc

……

/dev/sda

/dev/sdb

/dev/sdc

……

 

硬盘分区的表示方法

/dev/hda1, /dev/hda2…

/dev/hdb1, /dev/hdb2…

/dev/hdc1, /dev/hdc2…

/dev/sda1, /dev/sda2…

/dev/sdb1, /dev/sdb2…

/dev/sdc1, /dev/sdc2…

旧版本的Linux 内核中,所有IDE 相关的驱动代码,不仅过于复杂,而且问题多多。于是,Linux 内核的开发者们从Kernel 2.6.19 开始,提供了基于libataPATA 驱动程序,使得IDE 设备可以像SCSI 设备那样使用。

所以,我们现在所使用的Ubuntu 中,无论你使用的是IDE 硬盘还是SATA 硬盘,你看到的设备都是/dev/sdx 而不是/dev/hdx 。从此,/dev/hdx 不复存在。

需要注意的是,Linux 中,硬盘分区还有另外一种表示方法,这种方法是在grub 中使用的grub 起源于Grand Unified Bootloader是一个通用的计算机引导器,支持多种操作系统的多重引导 。在grub 中,不管是什么接口的存储设备,统统用hdx 来表示,其中x 是数字,从0 开始。比如,第1 块硬盘的第1 个分区,表示为(hd0,0)

<!-- [if !supportLists]-->1.4              <!-- [endif]-->Linux 分区指南

使用任何Linux 系统,都要有至少两个分区:一个是根分区,用“/ ”表示;另一个是swap (交换)分区。所以,最简单的分区方法就是:先创建swap 分区,剩下的所有空间分配给根分区“/ ”。

swap 分区的尺寸,最小应该和内存一样大,最大一般不超过内存的两倍大小

swap 分区就像Windows 的虚拟内存交换文件pagefile.sys ,系统在需要时会把它当作虚拟内存来使用。比方说在运行大型程序时、在内存优化时,或者在系统休眠时。系统休眠时,把整个内存的数据写入swap 分区,这就是为什么你的swap 分区的大小至少应该和内存一样大的原因。

此外,最好/boot 也单独创建在一个分区上 。因为这个目录下的文件比较重要,万一分区损坏,系统可能无法启动。如果单独创建为一个分区,其它分区损坏就不会影响它,从而提高了系统的稳定性。一般情况下,/boot 分区不需要太大,128MB 就足够了。

至于其它分区,就要看你的实际需求了。

比方说,如果你的服务器会有很多用户登录上来放文件,那么/home 最好单独分区 ,并给予足够大的空间。

再比方说,如果你的服务器是要放数据库的,这个数据库可能会变得很大,那么/var 最好单独分区 ,并给予足够大的空间。因为数据库默认是放在/var 下面的

Web 服务器也是一样,因为Web 页面默认是放在/var 下面的 。所以,如果你认为会有人上传大量的文件,那么最好也要把/var 单独分区,并给予足够大的空间。

 

提示 作为服务器,Hiweed 还建议把/tmp 单独作为一个分区 。因为大部分应用程序都会向这个目录写入临时文件,虽然每次Ubuntu 重新启动时这个目录会被清空,但是没有人会动不动重新启动服务器。

<!-- [if !supportLists]-->1.5              <!-- [endif]-->Linux 分区案例

Hiweed 在帮朋友的公司做系统架构时,在公司内部做了一台开发服务器,在机房里还有Web 服务器和数据库服务器。

开发服务器是给所以公司开发人员用的,他们要在“家目录”中存储大量的文件。平时,他们的工作站在启动时,是会自动将开发服务器上自己的“家目录”挂载到本地的。所以,这台服务器的/home 是用得最多的,而且需要比较大的空间。

此外,由于是开发服务器,我们还需要一个做版本管理的源代码仓库,这个仓库是放在/var 下面的。虽然源代码的文件尺寸不会特别大,不需要特别大的空间,但是这些代码非常重要,所以我们也要像保护/boot 那样保护它们。

所以,对于这台开发服务器,我们的分区方案(服务器硬盘共有80 GB[10 GB] ,内存为1 GB[512 MB] ),请见表2.4

2.4 开发服务器分区方案

文件系统

挂 载 点

  

分区格式

/dev/sda1

/boot

254 MB[254]

ext2

/dev/sda2

/

10 GB[2]

ext4

/dev/sda5

( )

2 GB[768]

swap

/dev/sda6

/var

20.3 GB[2]

ext4

/dev/sda7

/home

46.8 GB[4.3]

ext4

/dev/sda8

/tmp

2 GB[768]

ext4

以上分区方案只是一个参考,实际分区方案应该根据自己的实际情况而定。

<!-- [if !supportLists]-->1.6              <!-- [endif]-->/etc/fstab 介绍

Linux 系统中的所有静态文件系统,全部描述在/etc/fstab 这个文件中。fstabFile System Table 的简写,也就是“文件系统表”。系统启动时,正是通过fstab 中的信息挂载各个分区的。fstab 的文件系统条目有6 个字段,格式如表2.5 所示。

2.5 fstab 格式

  

挂载点

 

挂载选项

是否备份

检查顺序

/dev/sdb2

/home

Ext4

Defaults

0

2

 

下面我们来介绍一下每个字段的含义,如表2.6 所示。

2.6 fstab 各字段含义

   

     

设备

存储设备( 分区) 的名字或者UUID

挂载点

要挂载到的目的文件夹名称。挂载后,从该文件夹即可访问设备

格式

文件系统的格式,如:ext4

. 挂载选项

挂载的选项。和mount 命令的选项相同,详情可参考man mount

是否备份

启用/ 禁用dump 备份

分享到:
评论

相关推荐

    linux ubuntu

    标题“Linux Ubuntu”直接指向了全球广泛使用的开源操作系统之一——Ubuntu。该标题简明扼要地表达了文章的主题,即围绕Ubuntu这一基于Linux的操作系统展开深入探讨。描述部分“Ubuntu Introduction”进一步明确了...

    ubuntu11.10最全的安装使用详解.doc

    Ubuntu 安装程序提供了几个方案,包括使用整个硬盘、和其他选项 (Something else) 手动分区。 三、安装后系统设置 在安装完成后,需要进行一些基本设置,包括设置网络、软件源、语言套件、输入法、时区及时间、...

    安装CubieBoard最小系统(无线网络篇).pdf

    ### 安装CubieBoard最小系统无线网络篇——详细指南 #### 一、前言与准备工作 在本文中,我们将深入探讨如何在CubieBoard上安装最小系统,并特别聚焦于无线网络功能的实现。CubieBoard是一款基于ARM架构的开发板,...

    新版Android开发教程.rar

    • Linux (tested on Linux Ubuntu Dapper Drake) Supported Supported Supported Supported Development Development Development Development Environments Environments Environments Environments Eclipse IDE o...

    mybatis-3.0.5.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    SQLite3的使用+API接口的调用

    SQLite3的使用+API接口的调用(c/c++、Qt)

    aws-java-sdk-s3-1.12.246.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    基于混沌-高斯变异-麻雀搜索算法的BP神经网络优化(CGSSA-BP)在电厂运行数据回归预测中的应用(含优化前后对比)MATLAB代码

    内容概要:本文介绍了如何使用混沌-高斯变异-麻雀搜索算法(CGSSA)优化BP神经网络来进行电力行业的回归预测。主要内容包括数据准备、BP神经网络构建、CGSSA优化过程、以及优化前后效果对比。通过MATLAB代码实现,展示了如何读取EXCEL数据并进行训练和测试,最终通过图表和误差指标对比优化前后的预测效果。 适用人群:适用于具有一定MATLAB编程基础和技术背景的研究人员、工程师,特别是从事电力数据分析和机器学习领域的专业人士。 使用场景及目标:① 对电厂运行数据进行精准回归预测,辅助电厂运维规划和能源分配优化;② 提供详细的代码实现和优化方法,帮助用户理解和应用CGSSA优化BP神经网络的技术。 其他说明:文中提供了完整的代码示例,包括主程序、数据划分、BP神经网络预测、CGSSA-BP神经网络预测和结果对比等功能模块。此外,还讨论了一些优化技巧和注意事项,如数据归一化、隐藏层节点选择等。

    第三方浏览器下载包.apk

    第三方浏览器下载包.apk

    嵌入式系统开发_ARM11架构_Linux操作系统_QT48开发环境_QTCreator工具_人脸识别算法_商业保密技术_QML界面开发_视频嵌入技术_跨平台移植_基于上海高校.zip

    嵌入式系统开发_ARM11架构_Linux操作系统_QT48开发环境_QTCreator工具_人脸识别算法_商业保密技术_QML界面开发_视频嵌入技术_跨平台移植_基于上海高校

    宠物领养救助系统 - Java课程设计/毕业设计项目 - SpringBoot+Vue+MySQL宠物领养平台

    宠物领养救助系统是基于SpringBoot+MyBatisPlus+Vue+MySQL开发的Java项目,适合作为Java课程设计、毕业设计或期末大作业。技术涵盖前后端开发,帮助初学者快速掌握Java全栈技能。采用IDEA开发,代码规范,易于二次扩展,是Java学习者的理想实战项目!

    winmm钢琴程序代码QZQ.txt

    winmm钢琴程序代码QZQ

    scratch少儿编程逻辑思维游戏源码-狗狗变形者.zip

    scratch少儿编程逻辑思维游戏源码-狗狗变形者.zip

    thymeleaf-2.0.8.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    基于回声状态网络(ESN)的数据分类预测算法实现与Matlab代码实践

    内容概要:本文详细介绍了基于回声状态网络(ESN)的数据分类预测方法及其Matlab实现。首先简述了ESN的基本概念,强调其作为特殊递归神经网络的特点,即储备池连接权值固定不变。接着逐步展示了从数据准备、ESN模型构建、训练到预测的具体步骤,包括参数设置、状态更新规则、输出层训练方法等。文中还探讨了各部分代码的作用及意义,并提供了调参建议,如谱半径、泄漏率等参数的选择依据。此外,作者分享了自己在实验过程中的一些经验和心得,指出ESN在处理时间序列分类任务方面的优势。 适合人群:对递归神经网络特别是ESN感兴趣的科研工作者、学生以及有一定编程基础并想深入了解ESN机制的研究人员。 使用场景及目标:适用于需要进行时间序列数据分析和分类的应用场合,如金融趋势预测、语音识别等领域。通过学习本文提供的完整流程,读者可以掌握如何利用ESN解决实际问题,并能够根据自身需求调整模型参数以获得更好的性能。 其他说明:文中不仅给出了完整的Matlab代码示例,而且针对每一环节进行了详细的解释,帮助读者更好地理解ESN的工作原理和技术细节。同时提醒读者注意某些关键参数的调节范围,以便于在实际项目中取得理想的效果。

    威纶通触摸屏一机多屏程序

    内容概要:本文深入介绍了威纶通触摸屏一机多屏程序及其与FX3U系列PLC和MODBUS通讯的集成应用。首先,文章阐述了系统的硬件架构,即一个FX3U系列PLC搭配四个MT6051ip触摸屏的工作原理。接着,详细解析了威纶通模板的特点,特别是梯形图的详尽注释,便于理解和维护。此外,文章还探讨了PLC与上位机的MODBUS通讯设置,包括波特率、数据位、停止位等参数的具体配置方法。最后,强调了该系统的学习意义和借鉴价值,适用于新手和资深工程师。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是那些希望深入了解PLC、触摸屏和MODBUS通讯的人群。 使用场景及目标:①帮助工程师快速掌握威纶通触摸屏的一机多屏配置;②提高PLC与触摸屏、上位机之间的通讯效率;③优化中小型企业生产线的监控系统,提升生产效率和稳定性。 其他说明:文中提供的实例和代码片段有助于读者更好地理解和实践相关技术,同时附带了一些实用的小技巧,如心跳检测和双看门狗设计,增强了系统的可靠性和容错能力。

    无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失.zip

    无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失

    Matlab蒙特卡洛模拟求解复杂模型可靠度近似解

    内容概要:本文详细介绍了蒙特卡洛方法在工程可靠度计算中的应用,特别是在处理涉及多种概率分布参数的情况下。首先展示了基本的Matlab实现,如生成正态分布和极值分布的随机样本,并通过极限状态函数判断结构的安全性。接着讨论了处理相关变量的有效方法——拉丁超立方抽样,以及进一步提高计算效率的重要抽样法。此外,还探讨了并行计算和置信区间的计算,确保结果的准确性。最后强调了蒙特卡洛方法在解决复杂可靠度问题中的优越性和实用性。 适合人群:从事工程可靠度分析的研究人员和技术人员,以及对数值模拟感兴趣的工程师。 使用场景及目标:适用于需要评估结构或其他系统的可靠性的场合,尤其是在无法获得解析解的情况下。目标是提供一种简单有效的数值方法来估算失效概率和可靠度。 其他说明:文中提供了大量具体的Matlab代码示例,帮助读者更好地理解和应用蒙特卡洛方法。同时提醒使用者注意计算资源的合理分配,以平衡精度和效率。

    人力资源管理系统 - Java课程设计 - 毕业设计 - 期末大作业 - SpringBoot+Vue项目 - 初学者实战

    基于SpringBoot+MyBatisPlus+Vue+MySQL的人力资源管理系统,专为Java课程设计、毕业设计及期末大作业打造。采用主流技术栈(Idea开发),适合Java初学者快速上手,提供完整源码与文档,助力高效完成学习任务!

Global site tag (gtag.js) - Google Analytics