linux 磁盘分区、挂载
1 前置说明
1.1 分区图解:
硬盘上的一个分区 通过挂载mount机制与文件系统中的某个目录联系起来,即分区挂载到目录
访问这个目录即访问这个分区,可以通过指令查看挂载情况。
1.2 硬盘分类
IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
(1) IDE 硬盘
驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬盘
“x”为盘号
a 为基本盘 第一个硬盘
b 为基本从属盘 第二个硬盘
c 为辅助主盘 第三个硬盘
d 为辅助从属盘 第四个硬盘
“~”代表分区
前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区
例:hda3 表示为第一个 IDE 硬盘上的第三个主分区或扩展分区
hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展分区
(2)SCSI 硬盘
驱动器标识符为“sdx~”, SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样。
2 挂载实操
挂载基本上分为如下几步:
1) 虚拟机添加硬盘
2) 分区
3) 格式化
4) 挂载
5) 设置可以自动挂载
2.1 虚拟机添加硬盘
在【虚拟机】菜单中选择【设置】 ,然后设备列表里添加硬盘,然后一路【下一步,中间只有选择磁盘大小的地方需要修改,直至完成。重启虚拟机后才能显示硬盘。
使用命令lsblk查看新增的硬盘
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 47.7G 0 part /
sdb 8:16 0 2G 0 disk
└─sdb2 8:18 0 2G 0 part
sdc 8:32 0 1G 0 disk
sr0 11:0 1 1024M 0 rom
sdc为新增的硬盘,未分区
2.2 分区
分区命令:fdisk /dev/sdc (dev目录下是一些设备)
# 对sdc分区
fdisk /dev/sdc
步骤:
开始分区后输入 n (新增分区)
然后默认 p (分区类型为主分区)
两次回车
最后输入 w (写入分区并退出)(若不保存并退出输入 q,即上面步骤出错了想重来就可以输入q)
# 查看分区(新增sdc1为分区)
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 47.7G 0 part /
sdb 8:16 0 2G 0 disk
└─sdb2 8:18 0 2G 0 part
sdc 8:32 0 1G 0 disk
└─sdc1 8:33 0 1023M 0 part
sr0 11:0 1 1024M 0 rom
2.3 格式化磁盘
格式化的目的是:给这个分区指定它的文件类型
# 查询分区是否格式化(sdc1的uuid为空,说明还未进行格式化)
[root@localhost ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 xfs 89da9001-88d4-4492-a4fd-c19814f62405 /boot
├─sda2 swap dd4b715a-53cf-4fbb-a58b-7ac8b2561693 [SWAP]
└─sda3 xfs 3a19a28e-9b45-444c-b234-9699bb1fd576 /
sdb
└─sdb2 ext4 aa1419fe-3b42-4063-8cd1-7fa816001564
sdc
└─sdc1
sr0
#格式化命令:
mkfs -t ext4 /dev/sdc1 其中 ext4 是分区类型
2.4 挂载、卸载
挂载: 将分区与目录联系起来,
挂载命令:
mount 设备名称 挂载目录
卸载命令:(去除分区与目录的联系):
umount 设备名称 或者 umount 挂载目录
# 创建一个目录newdir
mkdir newdir
挂载
mount /dev/sdc1 /newdir
卸载(去除分区与目录的联系):
例如:umount /dev/sdc1
或者 umount /newdir
# 挂载后份区就有mountpoint了
[root@localhost /]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 47.7G 0 part /
sdb 8:16 0 2G 0 disk
└─sdb2 8:18 0 2G 0 part
sdc 8:32 0 1G 0 disk
└─sdc1 8:33 0 1023M 0 part /newdir
sr0 11:0 1 1024M 0 rom
2.5 设置自动挂载
用命令行挂载,重启后会失效永久挂载, 所以我们通过修改/etc/fstab 实现挂载 , 添加完成后 执行 mount –a 即刻生效 或者 重启系统reboot
# 步骤:
vim /etc/fstab
复制一行:正常模式下 yy(复制一行)p(粘贴):
修改为:UUID=上面sdc1的UUID /newdisk ext4 defaults 0 0
也可以是:/dev/sdc1 /newdisk ext4 defaults 0 0
执行 mount –a 即刻生效
# 解释:
要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
UUID=上面sdb1的UUID /newdir ext4 defaults 0 0
1)要挂载的设备或伪文件系统:设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs)
2)挂载点:指定的文件夹
3)挂载选项:defaults
4)转储频率:
0:不做备份
1:每天转储
2:每隔一天转储
5)自检次序:
0:不自检
1:首先自检;一般只有rootfs才用1;
3. 磁盘情况查询
3.1 查询系统整体磁盘使用情况
# 基本语法:
df -h (disk free)
3.2 查询指定目录的磁盘占用情况
基本语法:
du -h 指定目录 (disk usage)
功能:查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
# 查看当前目录下的子目录大小并按照大小排序*()
du -sh */ | sort -h
3.3 磁盘情况-工作实用指令
以opt文件夹下统计为例
1. 统计/opt 文件夹下文件的个数
ls -l /opt | grep "^-" | wc -l
说明:
grep "^-" --->筛选出以-开头的,因为以-开头的都是文件
wc (word count) 统计数量
wc -l 统计行数 l即lines
统计grep筛选后的行数即文件个数
2. 统计/opt 文件夹下目录的个数
ls -l /opt | grep "^d" | wc -l
3. 统计/opt 文件夹下文件的个数,包括子文件夹里的
ls -lR /opt | grep "^-" | wc -l
-R 递归列出遇到的子目录
4. 统计/opt 文件夹下目录的个数,包括子文件夹里的
ls -lR /opt | grep "^d" | wc -l
5. 以树状显示目录结构
指令:tree 目录
默认情况下没有tree指令
如果没有 tree ,则使用 yum install tree 指令安装
4.centOS中挂载来自Windows的共享文件夹
在CentOS服务器中挂载来自Windows的共享文件夹(通过SMB/CIFS协议),可以按照以下步骤操作
4.1 在windows上设置共享文件夹:
1. 打开文件资源管理器
点击“开始”菜单,然后选择“文件资源管理器”。
2. 选择要共享的文件夹
导航到你想要设置为共享的文件夹。右键点击该文件夹,选择“属性”。
3. 设置共享
在文件夹属性窗口中,切换到“共享”选项卡。
对于Windows 10/11:
点击“高级共享”按钮。
勾选“共享此文件夹”。
如果需要,你可以修改共享名称。
点击“权限”按钮来调整谁可以读取或写入这个共享文件夹。
完成后点击“确定”。
对于更早版本的Windows:
直接点击“共享”按钮,然后选择“特定用户”。
添加想要赋予访问权限的用户或组,并设定权限级别(读取或读取/写入)。
点击“共享”,等待共享设置完成,最后点击“完成”。
4. 访问控制与权限设置
确保设置了适当的权限,以便网络上的其他用户能够访问共享文件夹。这可以通过上述提到的“权限”设置来完成。根据你的需求,分配“读取”、“更改”或其他权限。
5. 防火墙设置
确保Windows防火墙允许文件和打印机共享。你可以通过如下路径检查和调整防火墙设置:
打开“控制面板” > “系统和安全” > “Windows Defender 防火墙”。
点击“允许应用或功能通过Windows Defender 防火墙”。
确保“文件和打印机共享”被选中。
6. 获取共享路径
完成共享设置后,点击“共享”选项卡中的“网络路径”链接(或类似表述),复制提供的网络路径。这是其他计算机用来连接到共享文件夹的地址。
4.2 安装CIFS工具
确保你的CentOS系统安装了cifs-utils
。使用如下命令进行安装:
方法一 在线安装cifs-utils
sudo yum install cifs-utils
# 对于CentOS 8或更新版本,你可能需要使用dnf:
sudo dnf install cifs-utils
# 查看是否已安装cifs-utils
sudo rpm -q cifs-utils
# 如何卸载
sudo yum remove cifs-utils
方法二 离线安装
# 1.在联网的 CentOS 服务器上,创建一个目录来存放下载的包:
mkdir /opt/pack
cd /opt/packages
# 2.使用 yumdownloader 下载 cifs-utils 及其所有依赖项:
sudo yum install -y yum-utils
# 3 接下来,下载 cifs-utils 和它的依赖项:
sudo yumdownloader --resolve cifs-utils
复制下载的 RPM 文件到 U 盘、网络共享或其他介质,以便传输到离线服务器。
包含 RPM 文件的介质连接到离线服务器,并导航到存放 RPM 文件的目录(例如 /opt/pack)。
sudo yum localinstall /mnt/usb/cifs-utils-packages/*.rpm
4.3 创建挂载点
sudo mkdir -p /mnt/win-share
4.4 准备凭证文件(可选但推荐)
sudo vim /etc/samba/userinfo1
在这个文件中添加如下内容:
username=win-username
password=win-password
chmod u+x userinfo1
userinfo1 是要连接的共享文件夹的用户信息
4.5 挂载Windows共享文件夹
使用mount
命令和之前准备的凭证文件挂载Windows共享:
方法一:
sudo mount -t cifs -o credentials=/etc/samba/userinfo1,iocharset=utf8 //WIN_IP_OR_HOSTNAME/sharename /mnt/win-share
说明
credentials=/etc/samba/userinfo1:指向你创建的凭证文件。
iocharset=utf8:设置字符编码为UTF-8,以便正确处理非ASCII字符。
//WIN_IP_OR_HOSTNAME/sharename:替换为Windows机器的IP地址或主机名以及共享名称。
/mnt/win-share:这是你在第二步创建的挂载点。
方法二 :如果想要被其他用户访问,需要通过以下方式设置权限(这将把文件和目录的权限都设置为rwxrwxrwx)
sudo mount -t cifs -o credentials=/etc/samba/userinfo86,iocharset=utf8,file_mode=0777,dir_mode=0777 //10.14.124.86/share /mnt/share86
# 确认挂载点
mount | grep share86
卸载挂载点
umount /mnt/share86
# 如果卸载不掉,强制卸载所有相关的挂载点
umount -f /mnt/share86
umount -l /mnt/share86
4.6 设置开机自动挂载
# 如果你想让这个共享文件夹在每次重启后自动挂载,编辑/etc/fstab文件:
sudo vim /etc/fstab
在文件末尾添加一行,类似于下面的内容:
//WIN_IP_OR_HOSTNAME/sharename /mnt/win-share cifs credentials=/etc/samba/userinfo1,iocharset=utf8 0 0
这样设置之后,每当系统启动时,它会尝试自动挂载指定的Windows共享文件夹。