分区、挂载、SWAP

433 阅读13分钟

1. 管理分区

#lsblk      列出块设备
#lsblk -f 	可以看到文件系统
[09:37:23 root@centos8 ~]#lsblk -f
NAME   FSTYPE  LABEL    UUID                                 MOUNTPOINT
sda                                                                            
├─sda1 xfs             06d75d27-4daa-4729-ac9f-55718e94d870  /boot
├─sda2 xfs             fef228f1-0a8a-4ac8-8bab-0cb590ff7ff6  /
├─sda3 xfs             be6ecf7a-851e-420c-bb65-9979bf830ea2  /data
├─sda4                                                                         
└─sda5 swap           874f4e74-ab3e-4f5e-93f0-cc28483c64da  [SWAP]
sdb                                                                            
sdc                                                                            
sr0    iso9660 CentOS-8-3-2011-x86_64-dvd 2020-11-18-21-39-52-00   
#分区工具
#fdisk -l		查看分区  
#fdisk			管理MBR分区
#gdisk			管理GPT分区
#分区工具子命令
#分区列表
    p		
    #更改分区类型
    t	
    #创建新分区
    n	
    #删除分区
    u	
    #保存并退出
    w
    #不保存并退出
    q	
#fdisk /dev/sdb   默认创建MBR分区,DOS就是MBR分区
    [10:04:00 root@centos8 ~]#fdisk /dev/sdb
    Welcome to fdisk (util-linux 2.32.1).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    Device does not contain a recognized partition table.
   Created a new DOS disklabel with disk identifier 0x335c1b74.
    Command (m for help): 
#gdisk /dev/sdb   默认创建GPT分区
    [10:09:34 root@centos8 ~]#gdisk /dev/sdb
    GPT fdisk (gdisk) version 1.0.3
    Partition table scan:
      MBR: not present
      BSD: not present
      APM: not present
      GPT: not present
    Creating new GPT entries.
    Command (? for help): 

du 	#查看某目录i总体空间占用
[21:58:11 root@centos8 ~]#du -h /data    #可以查看每个子目录的大小
    19G	/data/isos
    16K	/data/mnt/sdb1/lost+found
    20K	/data/mnt/sdb1
    0	/data/mnt/sdb2
    20K	/data/mnt
    21G	/data
    [21:58:21 root@centos8 ~]#du -sh /data    #总大小
     21G	/data
#注意:如果文件夹内有挂载点,那么查看的数值包括了此挂载点对应的分区的数值,使用 -x 可以忽略不在同一文件系统的目录
   	du -sh -x /data      

dd工具

#dd工具:if=file  读取的文件
#	of=file  写入的文件
#	bs=1	 每一块的大小
#	count=2	 一次读多少快
#	skip=3	 跳过读取文件的多少
#	seek=4	 跳过写入文件的多少
#	conv=notrunc 不把写入的文件截断

dd if=f1.txt  of=f2.txt bs=1 count=2 skip=3 seek=4 conv=notrunc


2.一个硬盘要用分为三部


#1.分区
#为新设备分区
	fdisk /dev/sdb										#以MBR分区
        Welcome to fdisk (util-linux 2.32.1).
        Changes will remain in memory only, until you decide to write them.
        Be careful before using the write command.
        
        Device does not contain a recognized partition table.
        Created a new DOS disklabel with disk identifier 0xbe39d95a.
        
        Command (m for help): p                        #查看分区列表
        Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
        Units: sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disklabel type: dos
        Disk identifier: 0xbe39d95a
        
        Command (m for help): n							#创建新分区
        Partition type
           p   primary (0 primary, 0 extended, 4 free)	#主分区
           e   extended (container for logical partitions) #扩展分区
        Select (default p): p							#p创建主分区
        Partition number (1-4, default 1): 				#回车默认
        First sector (2048-41943039, default 2048): 	#回车默认
        Last sector, +sectors or +size{K,M,G,T,P} (2048-41943039, default 41943039): +1G 	#+数字G 格式分配空间
        
        Created a new partition 1 of type 'Linux' and of size 1 GiB.
        
        Command (m for help): p							#查看分区列表
        Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
        Units: sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disklabel type: dos
        Disk identifier: 0xbe39d95a
        
        Device     Boot Start     End Sectors Size Id Type
        /dev/sdb1        2048 2099199 2097152   1G 83 Linux
       
       	Command (m for help): n				#创建分区
        Partition type
           p   primary (2 primary, 0 extended, 2 free)
           e   extended (container for logical partitions)
        Select (default p): e				#创建扩展分区
        Partition number (3,4, default 3): 		#默认
        First sector (6293504-41943039, default 6293504): #默认
        Last sector, +sectors or +size{K,M,G,T,P} (6293504-41943039, default 41943039): +10G												#大小
        
        Created a new partition 3 of type 'Extended' and of size 10 GiB.
        
        Command (m for help): p				#查看分区--至此扩展分区分好了
        Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
        Units: sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disklabel type: dos
        Disk identifier: 0xbe39d95a
        
        Device     Boot   Start      End  Sectors Size Id Type
        /dev/sdb1          2048  2099199  2097152   1G 83 Linux
        /dev/sdb2       2099200  6293503  4194304   2G 83 Linux
        /dev/sdb3       6293504 27265023 20971520  10G  5 Extended
        
        Command (m for help): n
        Partition type
           p   primary (2 primary, 1 extended, 1 free)
           l   logical (numbered from 5)
        Select (default p): l				#创建逻辑分区
        
        Adding logical partition 5
        First sector (6295552-27265023, default 6295552): #默认
        Last sector, +sectors or +size{K,M,G,T,P} (6295552-27265023, default 27265023): +1G         #逻辑分区的大小,分的是扩展分区
        
        Created a new partition 5 of type 'Linux' and of size 1 GiB.
        
        Command (m for help): p
        Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
        Units: sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disklabel type: dos
        Disk identifier: 0xbe39d95a
        
        Device     Boot   Start      End  Sectors Size Id Type
        /dev/sdb1          2048  2099199  2097152   1G 83 Linux
        /dev/sdb2       2099200  6293503  4194304   2G 83 Linux
        /dev/sdb3       6293504 27265023 20971520  10G  5 Extended
        /dev/sdb5       6295552  8392703  2097152   1G 83 Linux
	#循环上边操作---分区完成
        #更改分区类型
        Command (m for help): p
  
        Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
        Units: sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disklabel type: dos
        Disk identifier: 0xbe39d95a
        
        Device     Boot   Start      End  Sectors Size Id Type
        /dev/sdb1          2048  2099199  2097152   1G 83 Linux
        /dev/sdb2       2099200  6293503  4194304   2G 83 Linux
        /dev/sdb3       6293504 27265023 20971520  10G  5 Extended
        /dev/sdb5       6295552  8392703  2097152   1G 83 Linux
        /dev/sdb6       8394752 12589055  4194304   2G 83 Linux
        
        Command (m for help): t          			#更改分区类型
        Partition number (1-3,5,6, default 6): 6		#选择更改的分区
        Hex code (type L to list all codes): L			#L查看类型匹配的修改的值
        
         0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
         1  FAT12           27  Hidden NTFS Win 82  Linux swap / 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 hidden or  c6  DRDOS/sec (FAT-
         4  FAT16 <32M      40  Venix 80286     85  Linux extended  c7  Syrinx         
         5  Extended        41  PPC PReP Boot   86  NTFS volume set da  Non-FS data    
         6  FAT16           42  SFS             87  NTFS volume set db  CP/M / CTOS / .
         7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Dell Utility   
         8  AIX             4e  QNX4.x 2nd part 8e  Linux LVM       df  BootIt         
         9  AIX bootable    4f  QNX4.x 3rd part 93  Amoeba          e1  DOS access     
         a  OS/2 Boot Manag 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 hi ea  Rufus alignment
         e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         eb  BeOS fs        
         f  W95 Extd (LBA) 54  OnTrackDM6      a6  OpenBSD         ee  GPT            
        10  OPUS            55  EZ-Drive        a7  NeXTSTEP        ef  EFI (FAT-12/16/
        11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f0  Linux/PA-RISC b
        12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f1  SpeedStor      
        14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f4  SpeedStor      
        16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      f2  DOS secondary  
        17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fb  VMware VMFS    
        18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fc  VMware VMKCORE 
        1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fd  Linux raid auto
        1c  Hidden W95 FAT3 75  PC/IX           bc  Acronis FAT32 L fe  LANstep        
        1e  Hidden W95 FAT1 80  Old Minix       be  Solaris boot    ff  BBT            
        Hex code (type L to list all codes): 82       		 #swap分区
        
        Changed type of partition 'Linux' to 'Linux swap / Solaris'.
        
        Command (m for help): p
        Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
        Units: sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disklabel type: dos
        Disk identifier: 0xbe39d95a
        
        Device     Boot   Start      End  Sectors Size Id Type
        /dev/sdb1          2048  2099199  2097152   1G 83 Linux
        /dev/sdb2       2099200  6293503  4194304   2G 83 Linux
        /dev/sdb3       6293504 27265023 20971520  10G  5 Extended
        /dev/sdb5       6295552  8392703  2097152   1G 83 Linux
        /dev/sdb6       8394752 12589055  4194304   2G 82 Linux swap / Solaris
#有时候为分区完成的并使用过的硬盘分区,会出现分区不同步
	fdisk -l	#可以看新分区
	lsblk		#查看并没有新分区
	ls /dev/sda*    #也没有看到新分区
	#此时就是分区没有同步
		partprobe  #同步分区表,除了centos6其他都可以
		partx -a /dev/sda	#CentOS6 新增分区同步用
		partx -d --nr 6-8 /dev/sda #CentOS6 删除分区同步用
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
#2.创建文件系统 ext4  xfs  
    lsblk -f    		#查看需要创建文件系统的分区
    mkfs.ext4 /dev/sdb1         #创建ext4文件系统  ==  mkfs -t ext4 /dev/sdb1  
    mkfs.xfs /dev/sdb1		#创建xfs文件系统 ==  mkfs -t xfs /dev/sdb1
 
#查看块设备属性信息
	blkid 
[15:57:31 root@centos8 ~]#blkid
    /dev/sda1: UUID="06d75d27-4daa-4729-ac9f-55718e94d870" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="1486a0f6-01"
    /dev/sda2: UUID="fef228f1-0a8a-4ac8-8bab-0cb590ff7ff6" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="1486a0f6-02"
    /dev/sda3: UUID="be6ecf7a-851e-420c-bb65-9979bf830ea2" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="1486a0f6-03"
    /dev/sda5: UUID="874f4e74-ab3e-4f5e-93f0-cc28483c64da" TYPE="swap" PARTUUID="1486a0f6-05"
    /dev/sdb1: UUID="85dee10b-ddf5-44b3-81ab-a3b0deb6689d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="be39d95a-01"
    /dev/sdb2: PARTUUID="be39d95a-02"
    /dev/sdb5: PARTUUID="be39d95a-05"
    /dev/sdb6: PARTUUID="be39d95a-06"
    /dev/sr0: BLOCK_SIZE="2048" UUID="2020-11-18-21-39-52-00" LABEL="CentOS-8-3-2011-x86_64-dvd" TYPE="iso9660" PTUUID="6b8b4567" PTTYPE="dos"
-----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------- 
#3.挂载
	mkdir /data/sdb{1,2}
	mount /dev/sdb1 /data/sdb1
#查看挂载
	mount
#查看文件夹是不是挂载点
	findmnt /dev/sdb1
#持久挂载
#将挂载保存到/etc/fstab 中可以下次开机时,自动启用挂载
	vim /etc/fstab
	UUID=fef228f1-0a8a-4ac8-8bab-0cb590ff7ff6 /       xfs     defaults        0 0
        UUID=06d75d27-4daa-4729-ac9f-55718e94d870 /boot   xfs     defaults        0 0
        UUID=be6ecf7a-851e-420c-bb65-9979bf830ea2 /data   xfs     defaults        0 0
        UUID=874f4e74-ab3e-4f5e-93f0-cc28483c64da none    swap    defaults        0 0
        
	:r!blkid /dev/sdb1
	r!执行命令行 拿到sdb1的UUID和文件系统类型,模仿上面格式编写。
#如果没有手动挂载,只是把UUID写入了/etc/fdtab,在不重启的情况下需要执行mount -a 生效
	mount -a 
		
补充:
#df  查看文件空间的大小
#可以看到文件系统以及挂载点
    df -Th 
#可以看到文件系统信息
    lsblk -f
#查看文件系统信息
    ext:
        dumpe2fs  /dev/sdb1  #显示ext文件系统信息
        dumpe2fs -h  /dev/sdb1 #查看ext文件系统超级快信息,不显示分组信息
	xfs:
	xfs_info /dev/sdb2    #显示xfs文件系统信息
#文件系统格式化
	有挂载先取消挂载
	mkfs.ext4 /dev/sdb1  #重新执行一遍创建文件系统
#文件系统的标签
	标签命名:一般是挂载的路径
	方法:1.在创建文件系统的时候可以直接指定标签
			mkfs.ext4 -L '/data/挂载路径'  /dev/sdb1
	     2.文件系统创建完成了,e2label创建标签
		 	e2label /dev/sdb1 /data/挂载路径

注意:
	节点编号只有在创建文件系统的时候才能指定。生产中节点编号满了,实在是没有可删除的文件,需要扩展节点编号。
		第一步:把分区数据拷贝到其他盘
		第二步:取消挂载
		第三步:mkfs.ext4 -N 节点编号数量  /dev/sdb1
		

3.swap空间管理

#说明:swap交换分区,用来虚拟内存。效率没有内存高效,所以在大部分生产中swap是禁用的
#永久禁用swap
	sed -i.bak '/swap/s/^/#/' /etc/fstab     
	swapoff -a  
#永久启用swap
	vim /etc/fstab   #把UUID写入此文件
	swapon -a        #激活交换空间
#查看交换区的使用状况,可以看到所有启用的交换分区
	swapon -s
	
#创建swap
#1.用分区做交换空间
	fdisk -l  		#查看时MBR 还是GPT  分别使用fdisk还是gdisk
	fdisk /dev/sdb
        p        #分区列表
        t		#更改分区类型
        数字		#选择修改哪个分区
        L		#查看可以修改的数值与匹配类型
        82		#82为swap
        p		#分区列表	可以查看是否更改
        w		#保存退出
----------------------------------------------------------#至此分区做完
    mkswap /dev/sdb6	 #创建文件系统
----------------------------------------------------------#文件系统创建完成
    vim /etc/fstab      
    :r!blkid /dev/sdb6
   	swapon -a
----------------------------------------------------------#至此永久挂载并启用完成
	
#2.用文件做交换空间	
	dd if=/dev/zero of=/data/swapfile bs=1M count=2048    #创建2G的文件 2048个1M组成的文件
	mkswap /data/swapfile
	vim /etc/fstab
		/data/swapfile     none      swap      defaults        0 0
	swapon -a
	chmod 0 /data/swapfile
-----------------------------------------------------------------#至此完成文件做交换空间
#目的:当前分区快满了比较紧急,需要移动swap文件空间到大的分区去。
	swapoff /data/swapfile   #首先禁用
	mv /data/swapfile  /	#移动到别的分区
	vim /etc/fstab          #更改路径
		/swapfile     none      swap      defaults        0 0
	swapon -a