第二十四天

第二十四天

面试问道 fdisk 分区和parted分区区别:如下
fdisk在交互式的操作环境中管理磁盘分区,适用于小分区,一般小于2T 适合fdisk
Parted 规划大小超过2T的分区,也可用于小分区的规划


fdisk 支持 小于 2t
parted 命令分区 支持 大于2t


磁盘大于2T 如何分区整理方法 并实战下 提醒使用parted 分区


简化版步骤



# 1. 确认新硬盘已被系统识别
使用 fdisk -l 或 lsblk命令查看当前系统识别到的所有磁盘,找到新增的硬盘,假设为 /dev/sdc。

# 2. 打开parted工具并对新硬盘进行分区操作

 parted /dev/sdc

进入parted交互模式后,执行以下命令:

- 创建GPT分区表 (对于2TB以上的硬盘推荐使用GPT):

(parted) mklabel gpt


- 创建分区(假设全部空间分配给一个分区):

(parted) mkpart primary ext4 0GB 2.1TB

这里的 #primary# 表示主分区类型,#ext4# 是文件系统类型,#0GB# 和 #2.1TB# 分别是分区的起始和结束位置。

- 查看分区是否创建成功:

(parted) print

确认新分区的信息。

- 退出parted工具:

(parted) quit


# 3. 格式化新创建的分区

 mkfs.ext4 /dev/sdc1

这里假设新分区为 #/dev/sdc1#。

提示:如果分区没有识别的话,可以用partprobe 来进行重载分区


# 4. 创建挂载点并挂载分区

 mkdir /mnt/newdisk
 mount /dev/sdc1 /mnt/newdisk

创建了挂载点目录 #/mnt/newdisk# 并将新分区挂载到了这个目录下。

#5.挂载的二种方式



 5.1开机自动挂载
 5.2永久挂载




开机自动挂载
vi /etc/rc.local

mount /dev/sdb1 /mnt01
mount /dev/sdb1 /mnt02


如果开机不能自动挂载 要检查 配置文件权限
 
chmod +x 
chmod +777
要给原文件权限 







第二种方法自动挂载

vi /etc/fstab


UUID=12981d89-222f-4ee2-b1c7-5dc7560cd13c /                       xfs     defaults        0 0
UUID=04cb4c4e-727f-43e6-bd0a-0063bf3268a4 /boot                   xfs     defaults        0 0
UUID=df895761-902b-4692-81f7-d76e08aa18c3 /data                   xfs     defaults        0 0
UUID=e2b4e0b4-f016-4cd0-a697-5b0eadbe11fd swap                    swap    defaults        0 0
磁盘文件                                      挂载目录              文件系统类型  是否备份      是否检查                                  


#注意:如果需要uuid来进行挂载的话,可以用blkid查询uuid




# 6. 检查挂载配置是否生效

 mount -a
 
 

















修改磁盘分区的类型  

原mbr改为gpt类型

mklabel gpt



增加主分区为2100g-2.1t

mkpart paimary 0 2100G


print     打印信息  查看一下



加载一下分区
partprobe /dev/sdc



格式化
mkfs.xfs /dev/sdc1



挂载
mount /dev/sdc1 /mnt04








开机自动挂载  永久挂载




开机自动挂载
vi /etc/rc.local

mount /dev/sdb1 /mnt01
mount /dev/sdb1 /mnt02


如果开机不能自动挂载 要检查 配置文件权限
 
chmod +x 
chmod +777
要给原文件权限 







第二种方法自动挂载

vi /etc/fstab


UUID=12981d89-222f-4ee2-b1c7-5dc7560cd13c /                       xfs     defaults        0 0
UUID=04cb4c4e-727f-43e6-bd0a-0063bf3268a4 /boot                   xfs     defaults        0 0
UUID=df895761-902b-4692-81f7-d76e08aa18c3 /data                   xfs     defaults        0 0
UUID=e2b4e0b4-f016-4cd0-a697-5b0eadbe11fd swap                    swap    defaults        0 0
磁盘文件                                      挂载目录              文件系统类型  是否备份      是否检查                                  







UUID=12981d89-222f-4ee2-b1c7-5dc7560cd13c /                       xfs     defaults        0 0

UID=12981d89-222f-4ee2-b1c7-5dc7560cd13c 是根分区 / 对应的唯一标识符,表示系统根目录所在分区

/   挂载点
xfs 文件系统类型
defaults  挂载选项  --表示使用默认的挂载选项
0  dump选项 --0 表示不使用 dump 工具备份这个分区
0  fsck选项 --0 表示在系统启动时按照优先级顺序检查文件系统,0 表示较低的优先级,通常 / 会被设置为 1,表示在启动时最先进行检查


如何知道用uuid  
可以用blkid

[root@master ~]# blkid
/dev/sdb1: UUID="2c707329-23fe-4bb1-a359-9551fb802051" TYPE="xfs" 
/dev/sdb1: UUID="42acc4f4-053b-4d74-985a-a15808d2b921" TYPE="xfs" 
/dev/sda1: UUID="04cb4c4e-727f-43e6-bd0a-0063bf3268a4" TYPE="xfs" 
/dev/sda2: UUID="12981d89-222f-4ee2-b1c7-5dc7560cd13c" TYPE="xfs" 
/dev/sda3: UUID="df895761-902b-4692-81f7-d76e08aa18c3" TYPE="xfs" 
/dev/sda5: UUID="e2b4e0b4-f016-4cd0-a697-5b0eadbe11fd" TYPE="swap" 
/dev/sr0: UUID="2015-03-31-23-15-10-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 



一般情况下我们不用uuid来进行配置,都是直接指定目录


/dev/sdb1                        /mnt01           xfs          default     0 0
/dev/sdb1                        /mnt02           xfs           default     0 0
















如何找到大的文件 并删除写出命令

寻找大文件
du -sh /*   列出根目录的文件目录大小
find . -type f -size +100M  当前目录大于100m的文件
find / -type f  -size +100M  根目录大于100m的文件



删除
 find /mnt05 -type f -name "*.txt" -d

 find /mnt05 -type f -name 'w*' -print0 | xargs -0 rm -f
find /mnt05 -type f -name '*.txt' |rm -f


磁盘满的情况 No space left on device 如何处理给出思路
1.增加硬盘
2.找到占用大文件,删除清理文件或停止不必要的服务

最好设置监控,这样就可以提前响应,做准备

使用touch 无法写文件 提示磁盘满了 ,但是 执行df -h 空间还有%50怎么解决 面试会问道 是经验题
inode  节点编号满了  大量的小文件造成的

使用df -i     肯定占用100% 

肯定有大量的小文件吧inode号占满了  找到它删除就可以了








删除
 find /mnt05 -type f -name "*.txt" -d

 find /mnt05 -type f -name 'w*' -print0 | xargs -0 rm -f
find /mnt05 -type f -name '*.txt' |rm -f



如何启用swap分区? 实战演示
思路步骤

我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?
在装完Linux系统之后,建立Swap分区有两种方法。


1.新建磁盘分区作为swap分区
2.用文件作为swap分区 (操作更简单,更常用)





一、新建磁盘分区作为swap分区
1.以root身份进入控制台(登录系统),输入

swapoff -a #停止所有的swap分区


用fdisk命令(例:# fdisk /dev/sdb)对磁盘进行分区,添加swap分区,新建分区,在fdisk中用“t”命令将新添的分区id改为82(Linux swap类型),最后用w将操作实际写入硬盘(没用w之前的操作是无效的)。

mkswap /dev/sdb1 #格式化swap分区,这里的sdb2要看您加完后p命令显示的实际分区设备名
swapon /dev/sdb1 #启动新的swap分区


为了让系统启动时能自动启用这个交换分区,可以编辑/etc/fstab,加入下面一行
/dev/sdb1 swap swap defaults 0 0


二、用文件作为Swap分区

1.创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小)。

dd if=/dev/zero of=/root/swapfile bs=1M count=1024
2.格式化为交换分区文件:

mkswap /root/swapfile #建立swap的文件系统
3.启用交换分区文件:

swapon /root/swapfile #启用swap文件
4.使系统开机时自启用,在文件/etc/fstab中添加一行:
/root/swapfile swap swap defaults 0 0

新建和增加交换分区用到的命令为:mkswap、swapon等,而想关闭掉某个交换分区则用“swapon /dev/sdb1”这样的命令即可。

















具体操作过程



第一种操作步骤

[root@web1 ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   200G  0 disk 
├─sda1            8:1    0   500M  0 part /boot
└─sda2            8:2    0 199.5G  0 part 
  ├─centos-root 253:0    0    50G  0 lvm  /
  ├─centos-swap 253:1    0     2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 147.5G  0 lvm  /home
sdb               8:16   0     3G  0 disk 
sr0              11:0    1   636M  0 rom  
[root@web1 ~]# swapoff -a
[root@web1 ~]# fdisk /dev/sd
sda   sda1  sda2  sdb   
[root@web1 ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

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
Building a new DOS disklabel with disk identifier 0xe8a04d09.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-6291455, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-6291455, default 6291455): 
Using default value 6291455
Partition 1 of type Linux and of size 3 GiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): h  	  
Changed type of partition 'Linux' to 'unknown'

Command (m for help): 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 C:  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 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC b
11  Hidden FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 61  SpeedStor       ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      

Command (m for help): 82
8: unknown command
Command action
   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)

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes, 6291456 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
Disk label type: dos
Disk identifier: 0xe8a04d09

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     6291455     3144704    0  Empty

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82
Changed type of partition 'Empty' to 'Linux swap / Solaris'

Command (m for help): p

Disk /dev/sdb: 3221 MB, 3221225472 bytes, 6291456 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
Disk label type: dos
Disk identifier: 0xe8a04d09

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     6291455     3144704   82  Linux swap / Solaris

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@web1 ~]# partprobe /dev/sdb
sdb   sdb1  
[root@web1 ~]# partprobe /dev/sdb1
[root@web1 ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   200G  0 disk 
├─sda1            8:1    0   500M  0 part /boot
└─sda2            8:2    0 199.5G  0 part 
  ├─centos-root 253:0    0    50G  0 lvm  /
  ├─centos-swap 253:1    0     2G  0 lvm  
  └─centos-home 253:2    0 147.5G  0 lvm  /home
sdb               8:16   0     3G  0 disk 
└─sdb1            8:17   0     3G  0 part 
sr0              11:0    1   636M  0 rom  
[root@web1 ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 3144700 KiB
no label, UUID=08f5d68d-1df2-408d-96f7-1490361d4acd
[root@web1 ~]# swapon /dev/sdb1
[root@web1 ~]# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda               8:0    0   200G  0 disk 
├─sda1            8:1    0   500M  0 part /boot
└─sda2            8:2    0 199.5G  0 part 
  ├─centos-root 253:0    0    50G  0 lvm  /
  ├─centos-swap 253:1    0     2G  0 lvm  
  └─centos-home 253:2    0 147.5G  0 lvm  /home
sdb               8:16   0     3G  0 disk 
└─sdb1            8:17   0     3G  0 part [SWAP]
sr0              11:0    1   636M  0 rom  

编辑一下实现永久挂载
[root@web1 ~]# vi /etc/fstab

添加这行数据就可以了
/dev/sdb1 swap swap defaults 0 0

验证是否挂载成功,分区是否启用成功

free -h
free -m
或
cat /proc/swaps
或
lsblk -f


[root@web1 ~]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda                                                                                
├─sda1          xfs                         8c90ad84-bfee-430f-a706-d680b4f15ae8   /boot
└─sda2          LVM2_member                 gc0KLo-EKO2-SXuF-QEs7-II2L-o8h4-8t1X9X 
  ├─centos-root xfs                         55a0462f-f424-4ab2-a678-185b508e1ae8   /
  ├─centos-swap swap                        fa615a96-e2ea-4ab6-9aae-ed3f08744ee3   [SWAP]
  └─centos-home xfs                         f035bf10-39a3-438a-a427-cec9f411689a   /home
sdb                                                                                
└─sdb1          swap                        08f5d68d-1df2-408d-96f7-1490361d4acd   
sr0             iso9660     CentOS 7 x86_64 2015-03-31-23-15-10-00     



[root@web1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        126M         69M        7.6M        776M        694M
Swap:          2.0G          0B        2.0G
[root@web1 ~]# vi /etc/fstab
[root@web1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        126M         66M        7.6M        779M        694M
Swap:          2.0G          0B        2.0G
[root@web1 ~]# cat /proc/s
sched_debug    scsi/          slabinfo       stat           sys/           sysvipc/       
schedstat      self/          softirqs       swaps          sysrq-trigger  
[root@web1 ~]# cat /proc/swaps 
Filename				Type		Size	Used	Priority
/root/swapfile                          file		2097148	0	-2


















第二种操作步骤


创建要作为swap分区的文件:增加1GB大小的交换分区
[root@web1 ~]# dd if=/dev/zero of=/root/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.29981 s, 826 MB/s
[root@web1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        129M         69M        7.6M        773M        691M
Swap:          3.0G          0B        3.0G

格式化一下
[root@web1 ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=b21cf165-61d2-4b0b-8a63-0a254f3c0006

启用他
[root@web1 ~]# swapon /root/swapfile
swapon: /root/swapfile: insecure permissions 0644, 0600 suggested.
[root@web1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        130M         67M        7.6M        774M        690M
Swap:          4.0G          0B        4.0G

可以看到,因为我没有删除第一种方式创建的3g swap分区,所以他就在原先的基础上加了1g,变成了4g



当然你也可以删除或禁用所有swap分区,也可以在原先的基础上添加swap

我这里可以在重新默认第二种情况创建一下,把原来的分区都禁用了

演示
[root@web1 ~]# swapoff -a
[root@web1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        128M         65M        7.6M        778M        692M
Swap:            0B          0B          0B
[root@web1 ~]# dd if=/dev/zero of=/root/swapfile bas=2M count=1024
dd: unrecognized operand ‘bas=2M’
Try 'dd --help' for more information.
[root@web1 ~]# dd if=/dev/zero of=/root/swapfile bs=2M count=1024
1024+0 records in
1024+0 records out
2147483648 bytes (2.1 GB) copied, 1.65307 s, 1.3 GB/s
[root@web1 ~]# mkswap /root/swapfile
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=b78312b7-a702-4013-b54b-8afd4aa76a9e
[root@web1 ~]# swapon /root/swapfile
swapon: /root/swapfile: insecure permissions 0644, 0600 suggested.
[root@web1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        126M         69M        7.6M        776M        694M
Swap:          2.0G          0B        2.0G




新建和增加交换分区用到的命令为:mkswap、swapon等,而想关闭掉某个交换分区则用“swapon /dev/sdb2”这样的命令即可
swapon  开启
swapoff  -a 关闭所有swap分区
mkswap   格式化swap分区




如果分区时不显示同样可以用partprobe来重载分区





验证是否挂载成功



[root@web1 ~]# reboot
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(10.0.1.109) at 13:38:46.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 10.0.1.109:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Tue Mar 19 21:07:26 2024 from 10.0.1.1
[root@web1 ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        134M        747M        7.6M         89M        718M
Swap:          4.0G          0B        4.0G


永久挂载成功





linux的swap作用
在Linux中,swap空间(或swap分区)是一种特殊的文件系统或磁盘空间,用作虚拟内存。当系统的物理内存(RAM)不足时,Linux内核可以将部分不常用的内存数据移至swap空间,从而释放物理内存供其他进程使用。当这些被移至swap空间的数据再次被需要时,内核会将其从swap空间换回物理内存。这个过程称为swap in(换入)和swap out(换出)。

swap空间的主要作用如下:

扩展内存容量:通过将不常用的内存数据移动到swap分区,可以为系统提供更多的可用内存空间。
提高系统性能:当物理内存不足时,系统可以利用swap空间作为额外的内存资源,避免因内存不足导致的进程被杀死或其他性能问题。
管理内存碎片:通过将不常用的内存数据移动到swap分区,可以避免物理内存中出现大量的内存碎片,从而提高内存的使用效率。
swap空间的大小通常是根据物理内存的大小来设置的。一般来说,如果物理内存较少(例如1GB至2GB),swap空间可以设置为物理内存大小的2倍;如果物理内存较多(例如4GB以上),swap空间可以设置为物理内存大小的1到1.5倍。然而,随着现代计算机内存容量的增加,对于高内存系统(如具有16GB、32GB或更多内存的服务器),通常并不需要设置过大的swap空间,甚至可以考虑完全禁用swap分区。

在Linux中,你可以使用top、free -h等命令来查看当前的swap使用情况,包括已使用的swap空间和剩余的swap空间。同时,你也可以通过编辑/etc/fstab文件或使用其他磁盘管理工具来创建、调整或删除swap分区。

需要注意的是,过度使用swap空间可能会导致系统性能下降,因为从磁盘读取数据的速度远慢于从RAM读取。因此,在设置swap空间大小时,应综合考虑物理内存大小、工作负载特性以及可用磁盘空间等因素。

面试题 一个 :标准分区和lvm分区的区别
简单的说就是LVM可以方便的动态调整分区大小。比如你的/home分区不够用了,如果是基于分区,那将是非常痛苦的事情。但如果是LVM,使用lvextend命令就可以了
lvm 分区 虽然 方便,也有蛋疼的事    误删除不能恢复  风险 大    一般lvm 用的也少 
posted @ 2024-03-19 18:17  三思博客  阅读(11)  评论(0编辑  收藏  举报