Linux 系统管理06--磁盘管理

时间:2023-03-08 17:45:31
Linux 系统管理06--磁盘管理

Linux系统管理06——磁盘管理

磁盘结构

1、硬盘的物理结构

盘片:硬盘有多个盘片,每个盘片2面

磁头:每面一个磁头

2、硬盘的数据结构

扇区:盘片被分为多个扇形区域,每个扇形区存放512字节的数据

磁道:统一盘片不同半径的同心圆

柱面:不同盘片相同半径构成的圆柱面

3、硬盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数

4、可以用柱面/磁头/扇区来唯一定位磁盘上的每一个区域

二、磁盘接口

1、IDE(并口)

2、SATA(串口)

速度快

纠错能力强

3、SCSI

转速快

CPU占用资源低

支持热插拔

4、设备目录:/dev

Hd  IDE

Sd  SATA   SCSI  SAS

磁盘顺序:a..z

分区:用阿拉伯数字表示

、MBR

1、定义:MBR(Master Boot Record)主引导记录

2、位置:MBR位于硬盘第一个物理扇区处

3、MBR中包含硬盘的主引导程序和硬盘分区表。分区表有4个分区记录区,每个分区记录区占16个字节,共64字节。446字节存放主引导程序,2字节校验。

磁盘分区表示

1、Linux中将硬盘等设备均表示为文件

2、磁盘分区结构

硬盘中的主分区数目只有4个,因此主分区和扩展分区的序号也就限制在1~4。扩展分区再分为逻辑分区,逻辑分区的序号始终从5开始。

五、文件系统类型

1、EXT4,第4代扩展(Extended)文件系统

存放文件和目录数据的分区

典型的日志型文件系统

系统中默认使用的文件系统

2、SWAP,交换文件系统

为Linux系统建立交换分区,类似于windows系统的虚拟缓存

3、Linux支持的其他系统文件类型

FAT16、FAT32、NIFS、XFS、JFS……

六、检测并确认新硬盘  fdisk -l命令

1、格式:fdisk –l [磁盘设备]

2、输出信息说明

Device:分区的设备文件名称

Boot:是否是引导分区。是,则有“*”标识

Stat/End:分区的起始/结束位置(柱面数)

Blocks:块,默认大小为1024字节

Id:分区对应的系统ID号。83表示Linux中的EXT4分区、8e表示LVM逻辑卷、82表示swap、fd表示RAID

System:分区类型

示例:列出当前系统中所有硬盘设备及其分区的信息

[root@crushlinux ~]# fdisk -l

Disk /dev/sda:  bytes
 heads,  sectors/track,  cylinders
Units = cylinders of  *  =  bytes
Sector size (logical/physical):  bytes /  bytes
I/O size (minimum/optimal):  bytes /  bytes
Disk identifier: 0x000d78d8

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *                                Linux
Partition  does not end on cylinder boundary.
/dev/sda2                             8e  Linux LVM

Disk /dev/mapper/vg_duanwenya-lv_root:  bytes
 heads,  sectors/track,  cylinders
Units = cylinders of  *  =  bytes
Sector size (logical/physical):  bytes /  bytes
I/O size (minimum/optimal):  bytes /  bytes
Disk identifier: 0x00000000

Disk /dev/mapper/vg_duanwenya-lv_swap:  MB,  bytes
 heads,  sectors/track,  cylinders
Units = cylinders of  *  =  bytes
Sector size (logical/physical):  bytes /  bytes
I/O size (minimum/optimal):  bytes /  bytes
Disk identifier: 0x00000000

七、规划硬盘中的分区  fdisk命令

1、作用:在交互式的操作环境中管理磁盘分区

2、格式:fdisk [磁盘设备]

3、常用选项:

m:查看操作指令的帮助信息

p:列表查看分区信息

n:新建分区

d:删除分区

t:变更分区类型

w:保存分区设置并退出

q:放弃分区设置并退出

Ctrl+退格键:删除输入的错误字符

4、示例:

为主机新增一块20G的SCSI硬盘

对该硬盘进行分区

划分两个主分区,各5G,剩余空间为扩展分区

在扩展分区中建立两个逻辑分区,第一个逻辑分区1G,类型为swap。第二个逻辑 分区为9G。

(1)关机

(2)新增硬盘

(3)

开机,查看新硬盘是否添加 

()使用fdisk进行分区

[root@crushlinux ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x4f3a72ac.

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  will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').

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)

Command (m for help): p

Disk /dev/sdb:  bytes

 heads,  sectors/track,  cylinders

Units = cylinders of  *  =  bytes

Sector size (logical/physical):  bytes /  bytes

I/O size (minimum/optimal):  bytes /  bytes

Disk identifier: 0x4f3a72ac

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): n

Command action

   e   extended 【扩展分区】

   p   primary partition (-)  【主分区】

p

Partition number (-): 

First cylinder (-, default ): 回车

Using default value 

Last cylinder, +cylinders or +size{K,M,G} (-, default ): +5G

Command (m for help): n

Command action

   e   extended

   p   primary partition (-)

p

Partition number (-): 

First cylinder (-, default ): 回车

Using default value 

Last cylinder, +cylinders or +size{K,M,G} (-, default ): +5G

Command (m for help): n

Command action

   e   extended

   p   primary partition (-)

e

Partition number (-): 

First cylinder (-, default ): 回车

Using default value 

Last cylinder, +cylinders or +size{K,M,G} (-, default ): 回车

Using default value 

Command (m for help): n

Command action

   l   logical ( or over)  【逻辑分区】

   p   primary partition (-)

l

First cylinder (-, default ): 回车

Using default value 

Last cylinder, +cylinders or +size{K,M,G} (-, default ): +1G

Command (m for help): t

Partition number (-): 

Hex code (type L to list codes): 

Changed system type of partition  to  (Linux swap / Solaris)

Command (m for help): n

Command action

   l   logical ( or over)

   p   primary partition (-)

l

First cylinder (-, default ): 回车

Using default value 

Last cylinder, +cylinders or +size{K,M,G} (-, default ): 回车

Using default value 

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

八、大小超过2T的分区规划  parted命令

1、作用:规划大小超过2T的分区,也可用于小分区的规划

2、格式:parted [选项] [分区设备]

3、交互式状态下的常用命令:

?/help/--help:帮助

quit/q:保存退出

print/p:打印

mklabel:改变硬盘的文件类型

mkpart:分区

rm:删除某分区,后面跟分区号,例如:rm 3

4、示例:

为主机新增一块20G的SCSI硬盘

对该硬盘进行分区

将硬盘类型改为gpt

划分三个分区,前两个分区各5G,剩下的都空间都划分给第三分区

(1)关机

(2)新增硬盘

(3)开机,查看新硬盘是否添加

[root@crushlinux ~]# parted -l

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sda: 107GB

Sector size (logical/physical): 512B/512B

Partition Table: msdos

Number  Start   End    Size   Type     File system  标志

       1049kB  525MB  524MB  primary  ext4         启动

       525MB   107GB  107GB  primary               lvm

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: .5GB

Sector size (logical/physical): 512B/512B

Partition Table: msdos

Number  Start  End  Size  Type  File system  标志

[root@crushlinux ~]# parted /dev/sdb

GNU Parted 2.1

使用 /dev/sdb

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) help                                                             

  align-check TYPE N                        check partition N for TYPE(min|opt) alignment

  check NUMBER                             do a simple check on the file system

  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition

  help [COMMAND]                           print general help, or help on COMMAND

  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)

  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on partition NUMBER

  mkpart PART-TYPE [FS-TYPE] START END     make a partition

  mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system

  move NUMBER START END                    move partition NUMBER

  name NUMBER NAME                         name partition NUMBER as NAME

  print [devices|free|list,all|NUMBER]     display the partition table, available devices,

        free space, all found partitions, or a particular partition

  quit                                     exit program

  rescue START END                         rescue a lost partition near START and END

  resize NUMBER START END                  resize partition NUMBER and its file system

  rm NUMBER                                delete partition NUMBER

  select DEVICE                            choose the device to edit

  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER

  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER

  unit UNIT                                set the default unit to UNIT

  version                                  display the version number and copyright

        information of GNU Parted

(parted) mklabel 

新的磁盘标签类型?          【两次tab键】

aix    amiga  bsd    dvh    gpt    loop   mac    msdos  pc98   sun

新的磁盘标签类型? gpt

警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be

lost. Do you want to continue?

是/Yes/否/No? y                                                           

(parted) mkpart

分区名称?  []? part1

文件系统类型?  [ext2]? ext4                                              

起始点?                                                                 

结束点? 5G

(parted) mkpart                                                           

分区名称?  []? part2

文件系统类型?  [ext2]? ext4                                              

起始点? 5G

结束点? 10G                                                              

(parted) mkpart                                                           

分区名称?  []? part3                                                     

文件系统类型?  [ext2]? ext4                                              

起始点? 10G

结束点? -                                                               

(parted) p                                                                

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: .5GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Number  Start   End     Size    File system  Name   标志

       1049kB  5000MB  4999MB               part1

       5000MB  .0GB  5001MB               part2

       .0GB  .5GB   .5GB                part3

(parted) quit

[root@crushlinux ~]# ls -l /dev/sdb*

brw-rw----.  root disk ,  1月   : /dev/sdb

brw-rw----.  root disk ,  1月   : /dev/sdb1

brw-rw----.  root disk ,  1月   : /dev/sdb2

brw-rw----.  root disk ,  1月   : /dev/sdb3

[root@crushlinux ~]# mkfs.ext4 /dev/sdb1

mke2fs  (-May-)

文件系统标签=

操作系统:Linux

块大小= (log=)

分块大小= (log=)

Stride= blocks, Stripe width= blocks

 inodes,  blocks

 blocks (5.00%) reserved for the super user

第一个数据块=

Maximum filesystem blocks=

 block groups

 blocks per group,  fragments per group

 inodes per group

Superblock backups stored on blocks:

, , , , , , 

正在写入inode表: 完成                            

Creating journal ( blocks): 完成

Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every  mounts or

 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@crushlinux ~]# mkdir /sdb1

[root@crushlinux ~]# mount /dev/sdb1 /sdb1/

[root@crushlinux ~]# cd /sdb1/

[root@crushlinux sdb1]# echo ceshiwenjian > test.txt

[root@crushlinux sdb1]# cd

[root@crushlinux ~]# umount /sdb1/

[root@crushlinux ~]# parted /dev/sdb

GNU Parted 2.1

使用 /dev/sdb

Welcome to GNU Parted! Type 'help' to view a list of commands.

(parted) p                                                                

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: .5GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Number  Start   End     Size    File system  Name   标志

       1049kB  5000MB  4999MB  ext4         part1

       5000MB  .0GB  5001MB               part2

       .0GB  .5GB  .5GB               part3

(parted)        【模拟误删除分区】                                                      

(parted) p                                                                

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: .5GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Number  Start   End     Size    File system  Name   标志

       5000MB  .0GB  5001MB               part2

       .0GB  .5GB  .5GB               part3

(parted) rescue      【救援误删除分区】                                             

起始点?                                                                 

结束点? 5G                                                               

信息: A ext4 primary partition was found at 1049kB -> 5000MB.  Do you want to add it to the

partition table?

是/Yes/否/No/放弃/Cancel? y                                               

(parted) p                                                                

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdb: .5GB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

Number  Start   End     Size    File system  Name   标志

       1049kB  5000MB  4999MB  ext4

       5000MB  .0GB  5001MB               part2

       .0GB  .5GB  .5GB               part3

(parted) q                                                                

信息: You may need to update /etc/fstab.

[root@crushlinux ~]# mount /dev/sdb1 /sdb1/

[root@crushlinux ~]# cat /sdb1/test.txt    【测试文件已被找回】

ceshiwenjian