去评论
海欣资源

Linux系统磁盘分区和挂载教程

Spring
2022/06/12 00:02:08
linux分区
原理介绍
    1、Linux来说wulun有几个分区,分给哪一目录使用,他归根结底只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。

    2、Linux采用了一种叫"载入"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这是要载入的一个分区将使它的存储空间在一个,目录下获得。

分区和文件关系示意图:

硬盘说明
    1、Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
    2、对于IDE硬盘,驱动器标识符为"hdx~",其中"hd"表明分区所在设备的类型,这里是指IDE硬盘了。"x"为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),"~"代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。

    3、对于SCSI硬盘则标识为"sdx~",SCSI硬盘是用"sd"来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样(x可以为abcd分别对应第1、2、3、4块硬盘)。

查看所有设备挂载情况
    指令:lsblk 或者lsblk -f

  1. [root@kongchao03 ~]# lsblk
  2. NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
  3. sda      8:0    0    20G  0 disk
  4. ├─sda1   8:1    0  1023M  0 part /boot
  5. ├─sda2   8:2    0    17G  0 part /
  6. └─sda3   8:3    0     2G  0 part [SWAP]
  7. sr0     11:0    1 729.9M  0 rom  /run/media/root/20210907_143734
  8. [root@kongchao03 ~]#


这里sda1、2、3分别代表第一块硬盘的第一分区第二分区...
挂载案例
步骤1:新建一块硬盘
在虚拟机菜单中,设置增加一块硬盘,完成后重启可以生效识别


使用lsblk命令查看

操作步骤2: 虚拟机硬盘分区
    分区指令:fdisk   /dev/sdb

开始对sdb分区
m        显示命令列表
p        显示磁盘分区同fdisk -l
n        新增分区
d        删除分区
w        写入并退出

说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间,最后输入w写入分区并退出,若不保存退出输入q

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

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

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

  7. 命令(输入 m 获取帮助):m            
  8. 命令操作
  9.    a   toggle a bootable flag
  10.    b   edit bsd disklabel
  11.    c   toggle the dos compatibility flag
  12.    d   delete a partition
  13.    g   create a new empty GPT partition table
  14.    G   create an IRIX (SGI) partition table
  15.    l   list known partition types
  16.    m   print this menu
  17.    n   add a new partition
  18.    o   create a new empty DOS partition table
  19.    p   print the partition table
  20.    q   quit without saving changes
  21.    s   create a new empty Sun disklabel
  22.    t   change a partition's system id
  23.    u   change display/entry units
  24.    v   verify the partition table
  25.    w   write table to disk and exit
  26.    x   extra functionality (experts only)
  27. 命令(输入 m 获取帮助):n
  28. Partition type:
  29.    p   primary (0 primary, 0 extended, 4 free)
  30.    e   extended
  31. Select (default p): p
  32. 分区号 (1-4,默认 1):1
  33. 起始 扇区 (2048-2097151,默认为 2048):
  34. 将使用默认值 2048
  35. Last 扇区, +扇区 or +size{K,M,G} (2048-2097151,默认为 2097151):
  36. 将使用默认值 2097151
  37. 分区 1 已设置为 Linux 类型,大小设为 1023 MiB
  38. 命令(输入 m 获取帮助):w
  39. The partition table has been altered!
  40. Calling ioctl() to re-read partition table.
  41. 正在同步磁盘。
  42. [root@kongchao03 ~]#

步骤3:虚拟机硬盘分区格式化

格式化磁盘,格式化之后才会分配UUID
    格式化指令:mkfs  -t  ext4     /dev/sdb1

其中ext4是分区类型
     mkfs -t ext4 /dev/sdb1
    lsblk -f


步骤4:将磁盘挂载到根目录下newdisk目录下
(也可以到其他目录下)

挂载:将一个分区与一个目录联系起来,
mount挂载
    挂载语法:mount   设备名称    挂载目录   (挂载目录是任意的)
  1. [root@kongchao03 ~]# cd /
  2. [root@kongchao03 /]# mkdir newdisk
  3. [root@kongchao03 /]# mount /dev/sdb1 /newdisk
  4. [root@kongchao03 /]# lsblk -f


  cd 进入挂载点,在其中创建文件,实则是在分区上新建了一个文件
     linux根下的存放只是目录,真正存放数据还是在硬盘中的分区
umount取消挂载

语法:
    umount  挂载点
    或umount  设备名

     umount /dev/sdb1   
    lsblk -f


用命令行挂载(mount /dev...),重启后会失效,即重启后挂载点消失
步骤5:实现永久挂载(即重启不消失)
永久挂载的本质是自动挂载上
    永久挂载:通过修改  /etc/fstab实现挂载
    添加完成后执行mount -a或reboot即可生效
    [root@kongchao03 /]# vim /etc/fstab
    [root@kongchao03 /]# mount -a


df -h查询磁盘使用情况

  1. [root@kongchao03 ~]# df -h
  2. 文件系统        容量  已用  可用 已用% 挂载点
  3. /dev/sda2        17G  5.8G   11G   37% /
  4. devtmpfs        978M     0  978M    0% /dev
  5. tmpfs           993M     0  993M    0% /dev/shm
  6. tmpfs           993M  9.0M  984M    1% /run
  7. tmpfs           993M     0  993M    0% /sys/fs/cgroup
  8. /dev/sdb1       991M  2.6M  922M    1% /newdisk
  9. /dev/sda1       991M  128M  797M   14% /boot
  10. tmpfs           199M   20K  199M    1% /run/user/0
  11. /dev/sr0        730M  730M     0  100% /run/media/root/20210907_143734
  12. [root@kongchao03 ~]#

du -h查询指定目录磁盘占用情况
    指令: du [参数]   /目录(查询指定目录的磁盘占用情况,默认为当前目录)
参数选项:


参数可以联合使用
示例:查询/opt目录的磁盘占用情况,深度为1

  1. [root@kongchao03 /]# cd /opt
  2. [root@kongchao03 opt]# ls
  3. rh
  4. [root@kongchao03 opt]# du -h --max-depth=1 /opt
  5. 4.0K        /opt/rh
  6. 8.0K        /opt
  7. [root@kongchao03 opt]#

参数联合起来使用:
    [root@kongchao03 opt]# du -hac --max-depth=1 /opt
    4.0K        /opt/rh
    8.0K        /opt
    8.0K        总用量