分析Linux磁盘管理与文件系统专题二

1.关于设备文件


A 我们知道常见的设备文件有:字符设备文件(character),块设备文件(block)。


B 块设备,简写b,随机访问,比如硬盘。


C 字符设备,简写c,线性访问,比如键盘,鼠标,显示器。


D 我们的设备文件常常在/dev目录下,并且没有大小。因为设备文件只是作为设备访问   的入口。


E 设备文件,一般用major(主设备号),minor(次设备号)进行标示。主设备号标示设备类型,次设备号标示同一种类型设备下的不同设备。

2.创建设备文件实例

[[email protected] dev]# mknod mydev c 66 0
[[email protected] dev]# mknod -m 640 mydev2  c 66 1
[[email protected] dev]# ls -l mydev*
crw-r--r-- 1 root root 66, 0 Jun 22 21:27 mydev
crw-r----- 1 root root 66, 1 Jun 22 21:28 mydev2

也就是说:

mknod  [-m permission] yourDevName b|c major minor

设备文件主要就是作为设备的访问入口的。要保证我们的主设备号,与某类设备是关联的。内核会识别主设备号的。比如,我们插入某个设备,内核识别为66,那么我们读取/dev/mydev,就是在读取这个设备,向/dev/mydev发送数据,就是向这个设备发送数据。举个例子如下:

[[email protected] dev]# tty
/dev/pts/0
[[email protected] dev]# who
root     pts/0        2014-06-22 20:22 (192.168.204.1)
zhangfengzhe pts/1        2014-06-22 21:36 (192.168.204.1)
[[email protected] dev]# echo "hello , zhangfengzhe " >> /dev/pts/1
[[email protected] dev]#

那么zhangfengzhe用户的tty下,将出现消息"hello,zhangfengzhe"。

3.关于硬盘


A 硬盘设备如何标示的?

并口的IDE,ATA 通常标示为/dev/hd

串口的STA,SCSI,USB 通常标示为/dev/sd


B 对于同一种类型的硬盘下的不同设备,通常会用a,b,c...进行标示


C 比如我们计算机上IDE通常有2个口,而一个口可以接入2块盘,那么有:

    /dev/hda , /dev/hdb , /dev/hdc , /dev/hdd


D 标示完硬盘后,就应该标示分区信息了。比如:

    /dev/hda1  表示IDE,第一块硬盘,第一个primary partition


E 注意下:

    一块硬盘,最多有4个主分区,1个扩展分区,多个逻辑分区。

   【下面会进行实验,清清楚楚的看到!】

4.任务实战:对一个新硬盘进行分区


首先,利用fdisk -l查看下分区信息。

[[email protected] ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1           6       48163+  83  Linux
/dev/sda2               7         515     4088542+  83  Linux
/dev/sda3             516        2356    14787832+  83  Linux
/dev/sda4            2357        2610     2040255    5  Extended
/dev/sda5            2357        2610     2040223+  82  Linux swap / Solaris
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn‘t contain a valid partition table

从上面的信息,可以看出,/dev/sdb为新硬盘,没有分区。

然后,使用fdisk /dev/sdb来进行分区操作。

注意利用fdisk /dev/sdb将进入到一个交互式的界面。

[[email protected] ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won‘t be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition‘s system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

我们可以利用m来获取帮助,p来显示当前硬盘的分区信息【包括新建的没有保存的】,d来删除分区,t来修改分区类型【所谓分区类型,就是指文件系统类型】,l可以列出分区类型,w用来保存你设置的分区信息并退出,q则不保存且退出。

接下来,我们输入n,来创建新分区:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-130, default 130): +50M

创建分区,需要明确是扩展分区,还是主分区。对于新硬盘,还需要指明分区编号。分区都是从一个柱面到另一个柱面,即起始柱面到结束柱面。但是,大多数时候,我们一般都是说分多大个区,可以用上面的方式来指定分区大小。需要注意的是,这并不精确,因为比如7个磁道为49.2M,8个磁道为50.2M,由于一个磁道只能属于一个分区。

然后,输入p,看下现在的分区信息:

Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux

采用上面的方式,创建4个主分区,如下:

Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux
/dev/sdb2               8          15       64260   83  Linux
/dev/sdb3              16          25       80325   83  Linux
/dev/sdb4              26         130      843412+   5  Extended

然后,我们来继续创建主分区,看看会发生什么?

You must delete some partition and add an extended partition first

接下来,我们删除第四个主分区,去创建扩展分区。

Command (m for help): d
Partition number (1-4): 4
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux
/dev/sdb2               8          15       64260   83  Linux
/dev/sdb3              16          25       80325   83  Linux
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Selected partition 4
First cylinder (26-130, default 26): 
Using default value 26
Last cylinder or +size or +sizeM or +sizeK (26-130, default 130): 
Using default value 130
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux
/dev/sdb2               8          15       64260   83  Linux
/dev/sdb3              16          25       80325   83  Linux
/dev/sdb4              26         130      843412+   5  Extended

注意,扩展分区创建完毕后,并不能使用,必须创建逻辑分区。

Command (m for help): n
First cylinder (26-130, default 26):  
Using default value 26
Last cylinder or +size or +sizeM or +sizeK (26-130, default 130): +50M
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux
/dev/sdb2               8          15       64260   83  Linux
/dev/sdb3              16          25       80325   83  Linux
/dev/sdb4              26         130      843412+   5  Extended
/dev/sdb5              26          32       56196   83  Linux

最后,我们w退出,然后查看:

[[email protected] ~]# fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1           6       48163+  83  Linux
/dev/sda2               7         515     4088542+  83  Linux
/dev/sda3             516        2356    14787832+  83  Linux
/dev/sda4            2357        2610     2040255    5  Extended
/dev/sda5            2357        2610     2040223+  82  Linux swap / Solaris
Disk /dev/sdb: 1073 MB, 1073741824 bytes
255 heads, 63 sectors/track, 130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1           7       56196   83  Linux
/dev/sdb2               8          15       64260   83  Linux
/dev/sdb3              16          25       80325   83  Linux
/dev/sdb4              26         130      843412+   5  Extended
/dev/sdb5              26          32       56196   82  Linux swap / Solaris

到这里,只要我们将分区进行格式化并挂载就可以使用了,这个,可以看我以后的博客,谢谢~

分析Linux磁盘管理与文件系统专题二,布布扣,bubuko.com

时间: 2024-10-29 19:11:29

分析Linux磁盘管理与文件系统专题二的相关文章

分析Linux磁盘管理与文件系统专题三

1.前言 紧接着我的上一篇博客进行磁盘管理操作: http://zhangfengzhe.blog.51cto.com/8855103/1430531 我们已经对磁盘进行了分区,信息如下: [[email protected] ~]# fdisk -l /dev/sdb Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = cylinders of 16065 * 5

Linux磁盘管理和文件系统

前言分区的概念:分区从实质上说就是对硬盘的一种格式化.当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即 MasterBootRecord,一般简称为 MBR)和引导记录备份的存放位置.而对于文件系统以及其他操作系统管理硬盘所需要的信息则是通过以后的高级格式化,即 Format 命令来实现.面.磁道和扇区硬盘分区后,将会被划分为面(Side).磁道(Track)和扇区(Sector).需要注意的是,这些只是个虚拟的概念,并不是真正在硬盘上划轨道MBR简介:MBR(Mai

Linux磁盘管理及文件系统

Linux磁盘管理及文件系统 1.Linux磁盘管理 识别硬盘设备:/dev/sd 标记不同的硬盘设备:/dev/sd[a-z] 标记同一设备上的不同分区:/dev/sd[a-z][1-] 1-4: 主或扩展分区标识 5+:逻辑分区标识 2.设备文件:特殊文件 设备号: major, minor major: 设备类型 minor: 同一类型下的不同设备 "块":block,随机设备 "字符":character,线性设备 3.分区工具: (1)fdisk, par

Linux磁盘管理——日志文件系统与数据一致性

参考:Linux磁盘管理——Ext2文件系统 数据不一致 上图是Ext2结构图,其他FS结构类似. 一般来说,我们将 inode table 与 data block 称为数据区:至于其他例如 superblock. block bitmap 与 inode bitmap 等称为 metadata (元数据). 以新增一个文件为例,看看FS操作流程 1. 先确定使用者对于欲新增文件的目录是否具有 w 与 x 的权限,若有的话才能新增:2. 根据 inode bitmap 找到没有使用的 inod

Linux磁盘管理、文件系统及其相关命令的使用方法

Linux磁盘管理 硬盘: 机械硬盘 SSD固态硬盘 track sector: 512bytes cylinder: 分区的基本单位: MBR:Master Boot Record 512bytes 446: bootloader 64: filesystem allocation table 16: 标识一个分区  2:55AA 磁盘接口类型: IDE (ATA):133MB/s,/dev/hd SCSI: 640MB/s SATA:6Gbps SAS:6Gbps USB:480MB/s 识

Linux磁盘管理与文件系统(精简理论部分,浓缩的精华!)

今天和大家分享的是Linux操作系统中的磁盘管理与文件系统的相关知识,将会从以下几点和大家进行说明: 磁盘基础 检测并确认新磁盘 规划硬盘中的分区 创建文件系统 挂载.卸载文件系统 首先先和大家说一下磁盘的结构1.硬盘的物理结构 盘片:硬盘有多个盘片.每盘片2面 磁头:每面一个磁头2.硬盘的数据结构 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据(磁盘的最小组成单元通常是512字节,部分厂商设定的是4096个字节) 磁道:同一盘片不同半径的同心圆 柱面:不同盘片相同半径构成的圆柱面(

linux磁盘管理和文件系统创建

1      磁盘管理 1.1    硬盘的构造原理 硬盘分类: 机械式硬盘,固态硬盘 硬盘出厂会进行低级格式化,分磁盘,再分扇区,硬盘的第一个磁道的一个扇区就是MBR 512Bytes Master boot record 446 bytes bootloader 主引导程序 64bytes :主分区存储 16bytes表示一个主分区,最多4个主分区 2bytes:magic number 表示mbr是否有效 硬盘的注意事项: a)                1.硬盘需要绝对的无尘环境,生

Linux磁盘管理与文件系统

一.磁盘知识体系 Linux磁盘存储描述 二. 磁盘分区 磁盘分区就是使用分区编辑器将一个硬盘上划分几个独立的逻辑部分,盘片一旦划分成数个分区,不同类的目录与文件可以存储进不同的分区. MBR原理 MBR主分区引导记录.磁盘的每块扇区都被分配了一个逻辑块地址,引导扇区是每个分区的第一个扇区,主引导扇区是整个硬盘的第一扇区.MBR就保存在主引导扇区中,且扇区还保存了硬盘分区表DPT和结束标志字.扇区共计512字节,MBR占446字节,DPT占64个字节,最后的结束标志字占2个字节.MBR分区缺点是

Linux磁盘管理及文件系统使用

磁盘管理基础知识 分区 fdisk parted gdisk 格式化 挂载 Linux中磁盘命名:IDE类型:/dev/hd[a-z]SCSI类型:/dev/sd[a-z] 一块磁盘经过哪些步骤才能够使用:分区(非必需)-->格式化-->挂载:磁盘分区的类型有MBR(master boot record)和GPT(GUID Partition Table),主要区别在MBR只能分4个主分区超过需要分为逻辑分区,磁盘容量最大不超过2T,超过部分无法识别. MBR 也就是主引导记录,位于硬盘的 0