第二十三天
由于自己数据库服务器目录磁盘报警,没有空间了
需要新增硬盘 500G 实验可以用10g测试 这是 工作和面试都会常遇到 如果面试就问思路
fdisk 支持 小于 2t
parted 命令分区 支持 大于2t
用这两个工具都可以
新增硬盘 ,挂载到 /mnt目录下 然后把一些数据移动到/mmt就不会报警了
fdkisk
parted
fdisk 支持 小于 2t
parted 命令分区 支持 大于2t
提示:如果分区后不显示分区信息,可用partprobe来进行重载分区,让他显示
具体思路-1
1.可以新增硬盘来解决
2.删除占用文件来解决
可用工具
fdisk 支持 小于 2t
parted 命令分区 支持 大于2t
fdisk
fdisk
在Linux环境下,当您新增一块500GB的硬盘并希望将其整合进系统使用时,一般需要经过以下几个步骤:
1. 识别新硬盘:
首先,确认系统已经识别到新添加的硬盘。可以通过执行fdisk -l或lsblk命令查看当前系统中的磁盘设备列表,寻找类似 /dev/sdb 这样的新磁盘设备。
示例:
fdisk -l
2. 分区:
使用fdisk工具对新硬盘进行分区。假设新硬盘是/dev/sdb:
fdisk /dev/sdb
在fdisk交互模式下:
- 输入n创建新分区。
- 选择分区类型,默认为主分区(p)。
- 接受默认分区号或指定分区号(如1)。
- 输入分区起始和结束扇区,或直接按回车接受默认值以使用整个磁盘。
- 输入w保存分区表并退出。
3. 格式化分区:
创建完分区后,需要对其进行格式化。这里以ext4文件系统为例:
mkfs.ext4 /dev/sdb1
4. 挂载分区:
创建一个目录用于挂载新分区,例如 /mnt/newdisk:
mkdir /mnt/newdisk
然后挂载新分区到该目录:
mount /dev/sdb1 /mnt/newdisk
5. 持久化挂载:
如果希望系统开机时自动挂载新分区,需编辑 /etc/fstab 文件,在其中添加一行:
echo '/dev/sdb1 /mnt/newdisk ext4 defaults 0 0' | tee -a /etc/fstab
确保fstab配置无误后,可以运行mount -a测试挂载配置是否有效。
parted
操作步骤如下:
# 1. 确认新硬盘识别并准备分区
首先,你需要确认系统已经识别到了新的500GB硬盘,通常可以通过fdisk -l或lsblk命令查看新添加的磁盘。假设新硬盘被识别为 /dev/sdb。
# 2. 使用parted对硬盘进行分区
使用parted创建一个新的分区:
parted /dev/sdb
在parted交互模式中:
- 输入mklabel gpt创建GPT分区表(如果是新的硬盘,这一步骤通常是首选,因为它支持大于2TB的硬盘和更多的分区数量)。
- 输入mkpart primary ext4 0GB 500GB创建一个从开始到结束的500GB ext4主分区。这里假设我们打算用整个硬盘创建一个分区。
- 输入quit退出parted。
# 3. 格式化新分区
创建完分区后,需要格式化新分区为所需的文件系统类型(这里是ext4):
mkfs.ext4 /dev/sdb1
# 4. 创建挂载点并挂载分区
创建挂载点目录(在这个例子中,我们将挂载到 /mnt 目录下的一个子目录,比如 /mnt/newdisk):
mkdir /mnt/newdisk
挂载新分区到创建的目录:
mount /dev/sdb1 /mnt/newdisk
#5.挂载的二种方式
5.1开机自动挂载
5.2永久挂载
开机自动挂载
vi /etc/rc.local
mount /dev/sdb1 /mnt01
mount /dev/sdb2 /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. 检查挂载配配置
为了确保fstab中的挂载设置无误,可以使用 mount -a 测试挂载配置:
mount -a
如果没有任何错误提示,那么新分区已经被成功创建、格式化并挂载到了指定的目录。下次重启时,该分区将自动挂载到 /mnt/newdisk。
#7.配置了自动挂载为什么开机还是没有挂载 ?
1.查看配置文件是否出错
2.查看配置文件是否有执行权限
此问题的解决: rc.local 是个软连接 这个时候去真实的目录下查看 发现这个文件本身没有执行权限,基于执行权限
反思:一般配置文件或者脚本时 后面都要对应看文件是否有执行权限 一般都是基于执行权限
具体实操
[root@master ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 Mar 1 01:42 /etc/rc.local -> rc.d/rc.local
[root@master rc.d]# ll
-rw-r--r--. 1 root root 519 Mar 16 00:51 rc.local
[root@master rc.d]# chmod +x rc.local
[root@master rc.d]# ll
-rwxr-xr-x. 1 root root 519 Mar 16 00:51 rc.local
[root@master ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 93.1G 0 part /
├─sda3 8:3 0 46.6G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 4G 0 part [SWAP]
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 5G 0 part
├─sdb2 8:18 0 4G 0 part
└─sdb3 8:19 0 1023M 0 part
sr0 11:0 1 636M 0 rom
[root@master ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 Mar 1 01:42 /etc/rc.local -> rc.d/rc.local
[root@master ~]# cd /etc/
[root@master etc]# ls
1.sh exports mime.types rpm
adjtime favicon.png mke2fs.conf rsyslog.conf
aliases filesystems modprobe.d rsyslog.d
aliases.db firewalld modules-load.d rwtab
alternatives fstab motd rwtab.d
anacrontab gcrypt motdy sasl2
asound.conf gnupg mtab securetty
audisp GREP_COLORS my.cnf security
audit groff my.cnf.d selinux
autofs.conf group nanorc services
autofs_ldap_auth.conf group- netconfig sestatus.conf
auto.master grub2.cfg NetworkManager shadow
auto.master.d grub.d networks shadow-
auto.misc gshadow nsswitch.conf shells
auto.net gshadow- nsswitch.conf.bak skel
auto.smb gss openldap ssh
avahi host.conf opt ssl
bash_completion.d hostname os-release statetab
bashrc hosts pam.d statetab.d
binfmt.d hosts.allow passwd sudo.conf
centos-release hosts.deny passwd- sudoers
centos-release-upstream httpd pkcs11 sudoers.d
chkconfig.d init.d pki sudo-ldap.conf
cron.d inittab plymouth sysconfig
cron.daily inputrc pm sysctl.conf
cron.deny iproute2 polkit-1 sysctl.d
cron.hourly issue popt.d systemd
cron.monthly issue.net postfix system-release
crontab kdump.conf ppp system-release-cpe
cron.weekly kernel prelink.conf.d tcsd.conf
crypttab krb5.conf printcap terminfo
csh.cshrc ld.so.cache profile tmpfiles.d
csh.login ld.so.conf profile.d tuned
dbus-1 ld.so.conf.d protocols udev
default libaudit.conf rc0.d vconsole.conf
depmod.d libnl rc1.d vimrc
dhcp libuser.conf rc2.d virc
DIR_COLORS locale.conf rc3.d wgetrc
DIR_COLORS.256color localtime rc4.d wpa_supplicant
DIR_COLORS.lightbgcolor login.defs rc5.d X11
dnsmasq.conf logrotate.conf rc6.d xdg
dnsmasq.d logrotate.d rc.d xinetd.d
dracut.conf machine-id rc.local yum
dracut.conf.d magic rdma yum.conf
e2fsck.conf mailcap redhat-release yum.repos.d
environment makedumpfile.conf.sample resolv.conf
ethertypes man_db.conf rpc
[root@master etc]# cd rc.local
-bash: cd: rc.local: Not a directory
[root@master etc]# cd /rc.local
-bash: cd: /rc.local: No such file or directory
[root@master etc]# cd /rc.d
-bash: cd: /rc.d: No such file or directory
[root@master etc]# cd /rc.d
-bash: cd: /rc.d: No such file or directory
[root@master etc]# cd rc.
rc.d/ rc.local
[root@master etc]# cd rc.d/
[root@master rc.d]# ls
init.d rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local
[root@master rc.d]# ll
total 4
drwxr-xr-x. 2 root root 66 Mar 1 01:43 init.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc0.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc1.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc2.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc3.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc4.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc5.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc6.d
-rw-r--r--. 1 root root 519 Mar 16 00:51 rc.local
[root@master rc.d]# chmod +x rc.local
[root@master rc.d]# ll
total 4
drwxr-xr-x. 2 root root 66 Mar 1 01:43 init.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc0.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc1.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc2.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc3.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc4.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc5.d
drwxr-xr-x. 2 root root 43 Mar 1 01:43 rc6.d
-rwxr-xr-x. 1 root root 519 Mar 16 00:51 rc.local
[root@master rc.d]# reboot
[root@master ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 93.1G 0 part /
├─sda3 8:3 0 46.6G 0 part /data
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 4G 0 part [SWAP]
sdb 8:16 0 10G 0 disk
├─sdb1 8:17 0 5G 0 part /mnt01
├─sdb2 8:18 0 4G 0 part /mnt02
└─sdb3 8:19 0 1023M 0 part
sr0 11:0 1 636M 0 rom
具体思路-2
找到占用文件过大的文件,把他删掉
du -sh /* 列出根目录的文件目录大小
find . -type f -size +100M 当前目录大于100m的文件
find / -type f -size +100M 根目录大于100m的文件
找到这个文件把他删掉
操作演示
[root@master ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 94G 1.7G 92G 2% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 490M 0 490M 0% /dev/shm
tmpfs 490M 6.8M 484M 2% /run
tmpfs 490M 0 490M 0% /sys/fs/cgroup
/dev/sda3 47G 33M 47G 1% /data
/dev/sda1 1014M 124M 891M 13% /boot
/dev/sdb1 5.0G 5.0G 20K 100% /mnt01
/dev/sdb1 5.0G 5.0G 20K 100% /mnt01 显示已用了100%了
如何解决?
du -sh /* 列出根目录的文件目录大小
find . -type f -size +100M 当前目录大于100m的文件
find / -type f -size +100M 根目录大于100m的文件
找到这个文件把他删掉
[root@master mnt01]# du -sh /*
8.0K /backup
0 /bin
91M /boot
4.0K /data
0 /dev
21M /etc
1.3M /home
0 /lib
0 /lib64
0 /media
0 /misc
0 /mnt
5.0G /mnt01
0 /mnt02
0 /mnt03
0 /mnt04
0 /net
0 /opt
du: cannot access ‘/proc/2211/task/2211/fd/4’: No such file or directory
du: cannot access ‘/proc/2211/task/2211/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/2211/fd/4’: No such file or directory
du: cannot access ‘/proc/2211/fdinfo/4’: No such file or directory
0 /proc
100K /root
6.8M /run
0 /sbin
0 /srv
0 /sys
4.0K /test
388K /tmp
806M /usr
816M /var
[root@master mnt01]# find . -type f -size +100M
./500M
[root@master mnt01]# find / -type f -size +100M
/proc/kcore
find: ‘/proc/2317/task/2317/fdinfo/6’: No such file or directory
find: ‘/proc/2317/fdinfo/6’: No such file or directory
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/var/cache/yum/x86_64/7/updates/gen/primary_db.sqlite
/var/cache/yum/x86_64/7/updates/gen/filelists_db.sqlite
/usr/lib/locale/locale-archive
/mnt01/500M
找到这个文件把他删掉
可能遇到的故障--面试真题
使用df -h 磁盘还有空间 但是无法新建文件?
故障现象
[root@master ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 94G 2.0G 92G 3% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 490M 0 490M 0% /dev/shm
tmpfs 490M 6.8M 484M 2% /run
tmpfs 490M 0 490M 0% /sys/fs/cgroup
/dev/sda3 47G 33M 47G 1% /data
/dev/sda1 1014M 124M 891M 13% /boot
/dev/sdb1 5.0G 369M 4.7G 8% /mnt01
/dev/sdb2 4.0G 33M 4.0G 1% /mnt02
/dev/sdd1 1020M 344M 677M 34% /mnt05
/dev/sdd1 1020M 344M 677M 34% /mnt05
[root@master mnt05]# touch nwq21.txt
touch: cannot touch ‘nwq21.txt’: No space left on device
可以看到这个分区还有600m的空间未使用呢 但是无法新建文件了
解决
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
标签:第二十三,43,dev,master,conf,rc,root
From: https://www.cnblogs.com/nwq1101/p/18083652