第二十四天
面试问道 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 用的也少