1. 磁盘介绍

 

机械硬盘 读取数据靠的是。 磁头读取磁片上的数据。

中间的马达带动 磁片的转动, 磁头从内向外,再从外向内的读取数据。 读写的快慢取决于磁片的转动速度。

 

磁面: 正反面都是可以写数据的。

磁柱: 正反两面都可以写数据,所以正反两面中间的就叫磁柱

磁道:就是磁面上一圈一圈的东西

 

磁盘的 0 磁道再最外圈。

MBR不小于512字节。446主引导程序,64的分区表(一个分区16字节,所以磁盘的主分区+扩展分区不能大于4)

 

开机 ==> 主板工作 ==> blos芯片工作(检查所有硬件是否好用, 加载CMOS)  (进入磁盘读取前512字节, 从硬件过渡到软件启动)

 

固态硬盘靠的是 内部的 存储颗粒,基于电信号的存储数据

 

 

 

 

2.分区介绍以及分区

 

 

 

 

hard disk

1)  分区   fdisk  

[root@python ~]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000bf194

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux     # 前面有个 * 号,就是启动标识
/dev/sda2         2099200    83886079    40893440   8e  Linux LVM

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

如何分区?

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

 

[root@python ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x107e0a5e 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   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 获取帮助):l       

 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+888M
分区 1 已设置为 Linux 类型,大小设为 888 MiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x107e0a5e

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1820671      909312   83  Linux

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):3
起始 扇区 (1820672-41943039,默认为 1820672):
将使用默认值 1820672
Last 扇区, +扇区 or +size{K,M,G} (1820672-41943039,默认为 41943039):
将使用默认值 41943039
分区 3 已设置为 Extended 类型,大小设为 19.1 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x107e0a5e

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1820671      909312   83  Linux
/dev/sdb3         1820672    41943039    20061184    5  Extended

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (1822720-41943039,默认为 1822720):
将使用默认值 1822720
Last 扇区, +扇区 or +size{K,M,G} (1822720-41943039,默认为 41943039):+5G
分区 5 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x107e0a5e

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1820671      909312   83  Linux
/dev/sdb3         1820672    41943039    20061184    5  Extended
/dev/sdb5         1822720    12308479     5242880   83  Linux

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@python ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (12310528-41943039,默认为 12310528):
将使用默认值 12310528
Last 扇区, +扇区 or +size{K,M,G} (12310528-41943039,默认为 41943039):+5G
分区 6 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@python ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 7
起始 扇区 (22798336-41943039,默认为 22798336):
将使用默认值 22798336
Last 扇区, +扇区 or +size{K,M,G} (22798336-41943039,默认为 41943039):+2G
分区 7 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助):t
分区号 (1,3,5-7,默认 7):7
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x107e0a5e

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1820671      909312   83  Linux
/dev/sdb3         1820672    41943039    20061184    5  Extended
/dev/sdb5         1822720    12308479     5242880   83  Linux
/dev/sdb6        12310528    22796287     5242880   83  Linux
/dev/sdb7        22798336    26992639     2097152   82  Linux swap / Solaris

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

3.文件系统以及格式化

格式化其实就是在硬盘中  装一个管家。 这个管家负责数据的 写入,取出等等的事情。(这个管家 就叫文件系统。格式化的目的就是 安装一个文件系统。让他负责管理数据。)

 

mkfs  -build a Linux filesystem

语法: mkfs [options] device

  -t  指定文件类型。 (man  mount  ==>   /-type  查看所有的文件系统)

 ==> 主分区格式化为 ext4

[root@python ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x107e0a5e

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1820671      909312   83  Linux
/dev/sdb3         1820672    41943039    20061184    5  Extended
/dev/sdb5         1822720    12308479     5242880   83  Linux
/dev/sdb6        12310528    22796287     5242880   83  Linux
/dev/sdb7        22798336    26992639     2097152   82  Linux swap / Solaris

[root@python ~]# mkfs -t ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
56896 inodes, 227328 blocks
11366 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=232783872
7 block groups
32768 blocks per group, 32768 fragments per group
8128 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

==>  分一个扩展分区。 两个逻辑驱动器   格式化为: xfs  ext3

[root@python ~]# mkfs -t ext3 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

[root@python ~]# mkfs -t xfs /dev/sdb6
meta-data=/dev/sdb6              isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

===> 格式化一个交换分区

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x107e0a5e

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     1820671      909312   83  Linux
/dev/sdb3         1820672    41943039    20061184    5  Extended
/dev/sdb5         1822720    12308479     5242880   83  Linux
/dev/sdb6        12310528    22796287     5242880   83  Linux
/dev/sdb7        22798336    26992639     2097152   82  Linux swap / Solaris
[root@python ~]# mkswap /dev/sdb7
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=b8b4db74-8659-4b55-a35f-bd47b14bcde9

     blkid  命令查看,所有磁盘设备的UUID

 

4.挂载以及自动挂载

~~~ linux中的所有设备必须经过挂载才可以被用户

~~~挂载的方式其实就是将 某个设备挂到文件系统中的文件夹。(或者可以理解为映射)  对文件夹的操作就是对设备的操作。

                     mount

mount   -mount a filesystem

语法:  mount device dir

  -a   挂载所有文件系统, 参考文件/etc/fastab

  -l  显示当前挂载

  -t  文件系统类型

  -o  指定挂在权限

手动挂载: 将/dev/sdb1 这个东西挂载到 opt/data1 上面
[root@python ~]# mount -t ext4 /dev/sdb1 opt/data1

[root@python ~]# mount -o ro /dev/sdb5 opt/data2    # 只读挂载
-o  就是用来指定权限的。  只读  只写 等等。

                                               umount

umount   卸载文件系统

  -l 懒惰卸载。 (有人在使用时是不能卸载的。 -l   在其他人不使用时自动卸载。)

[root@python ~]# umount /dev/sdb1         # 卸载源
[root@python ~]# umount opt/data2      # 卸载目标  
两种方式 都可以将文件系统卸载掉

                      

 

 

  1 
  2 #
  3 # /etc/fstab
  4 # Created by anaconda on Thu May 16 05:23:30 2019
  5 #
  6 # Accessible filesystems, by reference, are maintained under '/dev/disk'
  7 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
  8 #
  9 /dev/mapper/centos_python-root /                       xfs     defaults        0 0
 10 UUID=25ca20c2-4d47-4f1d-ac1f-e66c63acd77d /boot                   xfs     defaults        0 0
 11 /dev/mapper/centos_python-swap swap                    swap    defaults        0 0

 14 ##sdb
 15 /dev/sdb1    /root/opt/data1                           ext4    defaults    0  0
 16 /dev/sdb5    /root/opt/data2                           ext3    ro    0  0
 17 /dev/sdb6    /root/opt/data3                           xfs     rw    0  0

 18 /dev/sdb7       swap                    swap    defaults        0 0
# swap 挂载时,只能挂载到 swap 分区! 其他地方是不行的。

 

[root@python ~]# mount -a
[root@python ~]# mount -l |grep sdb
/dev/sdb1 on /root/opt/data1 type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sdb5 on /root/opt/data2 type ext3 (ro,relatime,seclabel,data=ordered)
/dev/sdb6 on /root/opt/data3 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

 

[root@python ~]# swapon -a       # 挂载 swap 交换分区。

[root@python ~]# free -m # 查看内存的 total used free shared buff/cache available Mem: 1819 1246 153 13 419 308 Swap: 6143 1 6142

 

####  挂载 swap  时 就不能使用 mount -a  进行挂载了。

挂载 swap  需要的时    swapon  -a  这个命令,  它也会去自动的读取 /etc/fatab 这个文件进行挂载。

 

                                        其他命令

df     查看磁盘分区的使用情况。

  -t 显示文件系统类型

  -h 显示文件大小

 

du  查看文件的大小

 

 

4)  读 取 数据

之后就可以使用啦-。-   不演示了!

 

posted on 2019-07-06 21:41  rookiehbboy  阅读(455)  评论(0编辑  收藏  举报