百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

第二章 Linux文件系统管理(linux的文件管理)

sinye56 2024-11-13 12:35 4 浏览 0 评论

目标

  • 学习完本单元你将能够做到:

⑴ 说明怎样对数据进行访问和维护

⑵ 懂得文件系统级别

⑶ 管理文件系统级别

⑷ 懂得虚拟文件系统和swap

⑸ 监视文件系统

⑹ 添加一块硬盘

议程

  • 初始设备的访问
  • 对设备的分区
  • 文件系统基础
  • 文件系统级别
  • 初始化文件系统级别
  • 虚拟设备
  • 监视文件系统使用情况
  • 添加一块新磁盘

2.1系统初始化:设备识别

1.主引导记录

当系统引导时,操作系统从一个设备列表中搜寻设备编码(如:CD-ROM,floppy,硬盘,从BIOS中设定。)找到第一个可引导的设备并使用。大多数情况中,一个系统引导程序从硬盘上的第一个扇区上找到编码。第一柱面即主引导记录,或硬盘的MBR。这个可执行的编码被用于请求一个引导加载。

2.加载操作系统

引导加载程序有许多种,他们的功能是相同的,但界面和性能不同,如MS-DOS引导加载服务仅用于Microsoft Dos 和windows版本。其他的引导加载程序例如win NT/2000、LiLO(LINUX loader)或Gnu GRUB,使用它们将是是更灵活的,并能调节系统配置去运行更多的操作系统。

注意:引导加载不能在一次中加载多个操作系统,甚至多路系统。

3.校验分区表信息

校验分区表信息,包括:

·分区id或类型

·分区的启动扇区

·分区的扇区号

关于以上的引导加载程序的说明:MBR(主引导记录)是包含一个描述硬盘结构分区的区域,IDE硬盘上的Linux使用传统的结构去描述,即一块硬盘只能有4个主分区,并可以也只可以将一个主分区变成扩展分区和它的逻辑分区。每个分区,有它自己的扇区大小、块数。有一些分区类型也被存储在这个MBR结构中。Linux分配以下特殊分区的类型:

OX5(or oxf) —扩展分区

OX82 —Linux Swap交换分区

OX83 -—Linux ext3 带日志的ext2

OX8e —Linux LVM 逻辑卷

Oxfd -—Linux RAID auto 磁盘阵列

2.2 磁盘分区

1.扩展分区第一扇区记录逻辑分区的信息

扩展分区和逻辑分区

如果主分区中的一个被作为扩展分区(类型OX5)或Win95扩展(类型OXf),然后第一扇区(分区描述区域)记录的将包含其他的分区结构的信息。这些描述信息,定义逻辑分区。逻辑分区的使用,是受传统分区DOS类型分区表结构的限制,。逻辑分区定义不限制每个硬盘逻辑分区数的分类。

2.内核支持的最大分区数,即分区限制

·IDE 硬盘 63个

·SCSID硬盘 15个

Linux内核对一个设备的数字名称有计划地指定设备号,。这个设备和数字的分配支持每个硬盘总计63个分区的最大值,且一个分区分配一个设备号。在SCSI设备上,支持的最大分区数为15,又严格地去分配设备号。关于内核更多的信息,安装kernel-docRPM和参考/usr/share/doc/kernel-doc-*当中的devices.txt。为了操作较高级的分区,你需要手动建立一个设备文件:查看mknod man 和info page。

2.3 分区管理

1.建立分区可使用的程序:

有几个工具用于建立或操作一个磁盘上的分区。标准的、传统的命令行工具是fdisk。其他的分区程序都有它自己的优点和缺点。

⑴ fdisk

根据它自己的文档,fdisk采用传统的问答式界面,而非类似DOS fdisk的交互式操作界面。fdisk是使用最多的分区程序,它的优点是支持一些BSD磁盘分区表和其他非DOS分区表。

语法:

#fdisk [设备号]

表2.1 fdisk可用的操作命令:

命令

描述

a

将分区设置成可引导

d

删除分区号

l

列出所有支持的分区系统类型

m

显示在线说明

n

建立新的分区

o

建立新的dos分区

p

列出目前分区状态

q

不存储分区更改后的状态而结束程序

t

改变分区文件系统类型

v

检查分区的正确性

w

存储分区更改后的状态,并结束程序

x

切换到高级模式

例子:#fdisk /dev/hda (对第一块硬盘分区)

① 用fdisk命令修改第一块硬盘分区的设置

图2.1用fdisk命令修改第一块硬盘分区的设置

② 列出目前分区状态

图2.2列出目前分区状态

利用fdisk给硬盘分区的方法比较简单,按照提示做就可以,在此不予详述。最后别忘了,修改完分区保存设置并重启系统后设置方可生效这一点比parted分区程序安全。

⑵ sfdisk

用户界面稍微难懂,但是它是比fdisk更准确且比fdisk和cfdisk都更多灵活。况且,它使用非交互式界面。

2.Disk Druid

图形分区程序仅在安装系统期间提供。Disk Druid 也能配置加载点(/etc/fstab)和软RAID(/etc/raidtab)。

3. GNU parted-高级分区操作(建立、复制、调整大小等)

系统安装完后你可能需要一个程序去建立,删除、调整大小和拷贝包含文件的分区系统。Parted是执行这些任务程序的一种。

如果你想创建、删除分区或重新划分分区大小,分区所在设备不能正在被使用(分区不能被挂载,并且交换空间不能被启用)。分区表在被使用时不能被修改的原因是,这样做会使内核无法正确的识别所做改变。由于分区表和所挂载的分区不匹配,数据可能会被写入错误的分区而被覆盖。达到这个目的的最简单方法是在救援模式中引导系统。如果驱动器不包含任何正在被使用的分区,你可以使用 umount 命令来卸载分区,使用swapoff 命令来关闭硬盘驱动器上的交换空间。

语法:

parted [硬盘名]

表2.2 可用的操作命令:

命令

描述

help :

显示可用的命令列表。

check <分区号> :

简单的检测文件系统。

cp [源设备号] [目标设备号] :

拷贝文件系统到另一个分区。

mklabel [卷标] :

建立新的卷标。

mkfs [分区号] [文件系统类型] :

在分区上创建新的分区类型。

mkpart 分区类型 [文件系统类型] 开始 结束 :

不创建新文件系统而创建一个分区。

mkparts 分区类型 [文件系统类型] 开始 结束 :

用一个文件系统创建分区。

move 分区号 开始 结束 :

移动分区。

name 分区号 开始 结束 :

为分区命名。

print 分区号 :

显示分区。

quit :

退出。

rescue 开始 结束 :

抢救丢失的分区。

resize 分区号 开始 结束 :

改变分区大小。

rm 分区号 :

删除分区。

select 设备:

选择设备去编辑。

set 分区号 标志 :

在分区上设置标志;state 要么是 on,要么是 off。

⑴ 修改第一块硬盘的分区

#parted /dev/hda

图2.3 修改第一块硬盘的分区设置

⑵ 察看第一块硬盘的分区表

图2.4 察看第一块硬盘的分区表

第一行显示了磁盘的大小;第二行显示了磁盘标签类型;剩余的输出显示了分区表。在分区表中,Minor(次要)标签是分区号码。例如,次要号码为1的分区和 /dev/hda1 相对。Start(开始)和 End(结束)值以MB为单位。Type(类型)是 primary、extended、logical 中的一个。Filesystem(文件系统)是文件系统的类型,它可以是 ext2、ext3、FAT、hfs、jfs、linux-swap、ntfs、reiserfs、hp-ufs、sun-ufs 或 xfs 之一。Flags(标志)列列出了分区被设置的标志。可用的标志有:boot、root、swap、hidden、raid、lvm 或 lba。

⑶ 创建分区

不要试图在正在被使用的设备上创建分区。

根据分区表来决定新分区的起止点和分区类型。每个设备上只能有四个主分区(无扩展分区)。如果你想有四个以上分区,你可以有三个主分区,一个扩展分区,在扩展分区内你可以有多个逻辑分区。

要在某个硬盘驱动器上从 1024 MB 到 2048 MB 间创建一个文件系统为 ext2 的主分区,键入以下命令:

mkpart primary ext3 1024 2048

如果你使用 mkpartfs 命令,分区创建后文件系统也会被创建。然而,parted 不支持创建 ext3 文件系统。因此,如果你想创建一个 ext3 文件系统,请使用 mkpart,然后使用稍后会说明的 mkfs 命令来创建文件系统。mkpartfs 可以在 linux-swap 文件系统类型上使用。

只要你一按[Enter]键,改变就会发生,因此在执行前请检查一下命令。

创建了分区后,使用 print 命令来确认所建分区在分区表中,并具备正确的分区类型、文件系统类型和大小。 你还需要记住新分区的次要号码,这样你才可以给它注以标签。你应该查看

cat /proc/partitions

的输出来确定内核能够识别这个新分区。

⑷ 格式化分区

分区现在还没有文件系统。用下面的命令来创建文件系统:

/sbin/mkfs -t ext3 /dev/hdb3

⑸ 为该分区设置卷标

下一步,给分区设置卷标。例如,如果新分区是 /dev/hda3,你想把它标为 /work:

e2label /dev/hda3 /work

安装程序默认使用分区的挂载点作为分区的标签来确定标签的独特性。你可以使用任何想用的标签。

⑹ 创建加载点并修改/etc/fstab的设置

mkdir /work

编辑 /etc/fstab 文件来包括新分区。新添的这一行应该类似:

LABEL=/work /work ext3 defaults 1 2

第一列应该包含 LABEL=,然后跟随你给分区注明的标签。第二列应该包含新分区的挂载点,下一列应该是文件系统类型(如 ext3 或 swap)。如果你想了解更多关于格式化的信息,请阅读 man fstab 的说明书(man)页。

如果第四列是 defaults 这个词,分区就会在引导时被挂载。要不重新引导而挂载分区,以根用户身份键入以下命令:

mount /work

⑺ 删除分区

不要试图删除正在被使用的设备上的分区。

在删除分区前,引导入救援模式(或卸载设备上的所有分区,关闭设备上的交换空间)。

查看当前的分区表来判定要删除的分区的次要号码:

print

使用 rm 命令来删除分区。例如,要删除次要号码为 3 的分区:

rm 3

只要你一按[Enter]键,改变就会发生,因此在执行前请检查一下命令。

删除了分区后,使用 print 命令来确认分区在分区表中已被删除。你还应该查看

cat /proc/partitions

的输出来确定内核知道分区已被删除。

最后一步是把它从 /etc/fstab 文件中删除。找到和已被删除的分区相应的行,然后从文件中删除它。

⑻ 改变分区的大小

不要试图删除正在被使用的设备上的分区。

在删除分区前,引导入救援模式(或卸载设备上的所有分区,关闭设备上的交换空间)。

查看当前的分区表来判定要重划大小的分区的次要号码以及它的起止点:

print

注意:要重划大小的分区上已用的空间必须大于新建的大小。

要重新划分分区大小,使用 resize 命令,然后跟随分区的次要号码,以 MB 为单位的起始点和终止点。例如:

resize 3 1024 2048

分区被重新划分了大小后,使用 print 命令来确认分区已被正确地重新划分了大小,并且具备正确的分区类型和文件系统类型。

在正常模式下重新引导了系统后,使用 df 命令来确定分区已被挂载,并且它们的新大小也已被识别。

不要忘记升级/etc/fstab的设置。

注意:此命令是实时改变分区,所以很危险,小心,小心!!!!!!!!

2.4 管理数据:文件系统基础(一)

文件结构:是文件存放在磁盘等存储设备上的组织方法。主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。

1.为了能在设备上储存与读取文件,我们需要在分区上创立文件系统

Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并制定了每个目录的作用和其中的文件类型。

2.每一个文件系统在Linux里都被解释为由一个根目录为起点的目录树

Linux采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。微软的DOS和windows也是采用树形结构,但是在DOS和windows中这样的树形结构的根是磁盘分区的盘符,有几个分区就有几个树形结构,他们之间的关系是并列的。但是在Linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。从结构上讲,各个磁盘分区上的树形目录不一定是并列的。

3.Linux将各个文件系统挂载(mount)在系统目录树中使用

因为linux是一个多用户系统,制定一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理。

2.5 管理数据:文件系统基础(二)

文件系统:指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。

1.对应不同的操作系统与设备,计算机里有许许多多种文件系统

minix : 古老的文件系统。

msdos/fat : microsoft早年的文件系统。

vfat : win95与win98采用的文件系统。

ntfs : win2000 、xp使用的文件系统。

iso9660 : 光盘使用的文件系统。

ReiserFs/JFS : 仍然在完善的带日志的文件系统。

Linux 默认情况下不支持ntfs文件系统的挂载。并且对其以读写方式挂载造成的数据不承担任何责任。

2.不同的文件系统存放、搜索文件的方式都有不同

3.Linux支持多种文件系统的读写

如:windows的FAT16、FAT32、NFTS文件系统。

4.Linux自身最主要使用的是ext2/ext3文件系统

相关推荐

RHEL8和CentOS8怎么重启网络

本文主要讲解如何重启RHEL8或者CentOS8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错,当我们安装好RHEL8或者CentOS8,重启启动网络时,会出现以下报错:...

Linux 内、外网双网卡路由配置

1.路由信息的影响Linux系统中如果有多张网卡的情况下,如果路由信息配置不正确,...

Linux——centos7修改网卡名

修改网卡名这个操作可能平时用不太上,可作为了解。修改网卡默认名从ens33改成eth01.首先修改网卡配置文件名(建议将原配置文件进行备份)...

CentOS7下修改网卡名称为ethX的操作方法

?Linux操作系统的网卡设备的传统命名方式是eth0、eth1、eth2等,而CentOS7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名全自动的、可预知的...

Linux 网卡名称enss33修改为eth0

一、CentOS修改/etc/sysconfig/grub文件(修改前先备份)为GRUB_CMDLINE_LINUX变量增加2个参数(net.ifnames=0biosdevname=0),修改完成...

CentOS下双网卡绑定,实现带宽飞速

方式一1.新建/etc/sysconfig/network-scripts/ifcfg-bond0文件DEVICE=bond0IPADDR=191.3.60.1NETMASK=255.255.2...

linux 双网卡双网段设置路由转发

背景网络情况linux双网卡:网卡A(ens3)和网卡B(...

Linux-VMware设置网卡保持激活

Linux系统只有在激活网卡的状态下才能去连接网络,进行网络通讯。修改配置文件(永久激活网卡)...

VMware虚拟机三种网络模式

01.VMware虚拟机三种网络模式由于linux目前很热门,越来越多的人在学习linux,但是买一台服务放家里来学习,实在是很浪费。那么如何解决这个问题?虚拟机软件是很好的选择,常用的虚拟机软件有v...

Rocky Linux 9/CentOS Stream 9修改网卡配置/自动修改主机名(实操)

推荐...

2023年最新版 linux克隆虚拟机 解决网卡uuid重复问题

问题描述1、克隆了虚拟机,两台虚拟机里面的ip以及网卡的uuid都是一样的2、ip好改,但是uuid如何改呢?解决问题1、每台主机应该保证网卡的UUID是唯一的,避免后面网络通信有问题...

Linux网卡的Vlan配置,你可能不了解的玩法

如果服务器上连的交换机端口已经预先设置了TRUNK,并允许特定的VLAN可以通过,那么服务器的网卡在配置时就必须指定所属的VLAN,否则就不通了,这种情形在虚拟化部署时较常见。例如在一个办公环境中,办...

Centos7 网卡绑定

1、切换到指定目录#备份网卡数据cd/etc/sysconfig/network-scriptscpifcfg-enp5s0f0ifcfg-enp5s0f0.bak...

Linux搭建nginx+keepalived 高可用(主备+双主模式)

一:keepalived简介反向代理及负载均衡参考:...

Linux下Route 路由指令使用详解

linuxroute命令用于显示和操作IP路由表。要实现两个不同子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该...

取消回复欢迎 发表评论: