Linux服务器硬盘挂载小记录

Linux服务器硬盘挂载全攻略:从NTFS到ext4的最佳实践

背景

单位给给了台老设备用,存储非常有限,精叫唤后领导加了个硬盘。

本文将分享一个实际案例,详细介绍如何在Linux服务器上识别、格式化并挂载硬盘,特别是如何从Windows兼容的NTFS格式转换为Linux原生的ext4文件系统,以获得更好的性能和管理体验。

一、问题背景

在我们的Dell PowerEdge T640服务器上,有一块3.6TB的硬盘被识别出来但尚未挂载。该硬盘原先使用NTFS格式,可能来自Windows环境。我们需要将其挂载为Linux环境下的共享数据存储,并确保所有用户都能访问。

二、识别未挂载的硬盘

首先,使用lsblk命令查看系统上的所有硬盘和分区情况:

lsblk

输出结果:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 893.8G  0 disk 
├─sda1   8:1    0     1G  0 part /boot/efi
└─sda2   8:2    0 892.7G  0 part /var/snap/firefox/common/host-hunspell
                                 /
sdb      8:16   0   3.6T  0 disk 
├─sdb1   8:17   0    16M  0 part 
└─sdb2   8:18   0   3.6T  0 part 

从输出中可以看到:

  • sda是系统盘,已挂载
  • sdb是我们的目标硬盘,包含两个分区:
    • sdb1: 16MB分区,可能是系统保留分区
    • sdb2: 3.6TB分区,这是我们需要挂载的主要存储空间

接下来,我们要通过/dev/sdb2去查看这个设备

三、检查硬盘文件系统类型

使用blkid命令查看硬盘的文件系统类型:

sudo blkid /dev/sdb2

blkid是Linux系统中的一个重要命令行工具,用于查询块设备(如硬盘、分区、U盘等)的属性信息。这个命令可以帮助系统管理员快速识别设备的文件系统类型、UUID、标签等关键信息,在硬盘挂载、系统配置和故障排查中发挥着重要作用。
blkid命令全称为"block id"(块设备标识),是util-linux软件包的一部分,几乎所有Linux发行版都预装了这个工具。它主要功能是显示块设备的属性,常用于自动挂载、编写fstab配置和系统管理

输出结果:

/dev/sdb2: BLOCK_SIZE="512" UUID="B45653375652FA16" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="0225aca4-713f-45dd-9429-9563d0f01bf9"

可以看到TYPE="ntfs",该分区为使用的是NTFS文件系统,这是Windows默认的文件系统。

四、文件系统选择的考量

在Linux服务器上使用硬盘时,我们需要在NTFS和ext4等Linux原生文件系统之间做出选择:

NTFS的优势:

  • 与Windows系统兼容,可直接连接到Windows电脑使用
  • 无需额外软件即可在Windows下读写
  • 适合需要跨平台数据交换的环境

NTFS的劣势:

  • 在Linux下性能较差
  • 权限系统不兼容Linux
  • 可靠性和恢复能力较弱
  • 对Linux服务器环境不是最佳选择

ext4的优势:

  • Linux原生支持,性能优异
  • 完整的Linux权限支持
  • 更好的稳定性和崩溃恢复能力
  • 适合服务器长期运行环境

ext4的劣势:

  • Windows默认不支持(需要额外软件)
  • 跨平台兼容性较差

对于服务器环境,特别是纯Linux环境,ext4是更好的选择。这个根据你场景需求,我们这里将NTFS分区转换为ext4格式。

五、格式化硬盘为ext4

警告:格式化会删除分区上的所有数据,请确保备份重要信息!

  1. 确保分区未挂载:

其实这一步不需要,上面我们看到已经没有挂载了

sudo umount /dev/sdb2
  1. 格式化为ext4文件系统:
sudo mkfs.ext4 /dev/sdb2

mkfs.ext4命令是mkfs(make filesystem)命令族的一部分,专门用于创建ext4类型的文件系统。ext4是Linux中最常用的文件系统类型之一,是ext3的后继版本
在这里插入图片描述

  1. 查看新的UUID:
sudo blkid /dev/sdb2

在这里插入图片描述

输出结果:

/dev/sdb2: UUID="de7c334a-240a-499a-9d6b-e90c4ad98852" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Basic data partition" PARTUUID="0225aca4-713f-45dd-9429-9563d0f01bf9"

注意到文件系统类型已变为ext4,并且UUID已经改变。同时,块大小从512字节增加到了4096字节,这将提高大文件操作的效率。
我们需要记录下这里的UUID de7c334a-240a-499a-9d6b-e90c4ad98852,因为我们需要写入挂载的配置文件,不然重启后我们配置的硬盘就掉了。

六、创建挂载点

我们选择在根目录下创建/data目录作为挂载点,使其易于访问和管理:

sudo mkdir -p /data

七、配置永久挂载

为了确保系统重启后硬盘能自动挂载,需要编辑/etc/fstab文件:

sudo vim /etc/fstab

/etc/fstab是一个纯文本文件,包含了文件系统的静态信息。系统启动时,mount -a命令会读取该文件并挂载其中定义的所有文件系统。这使得用户不必在每次启动后手动挂载设备,也确保了系统各组件所需的存储资源能够自动可用。

在文件末尾添加以下行:

UUID=de7c334a-240a-499a-9d6b-e90c4ad98852  /data  ext4  defaults  0  2

参数说明:

  • UUID=...: 硬盘的唯一标识符
  • /data: 挂载点目录
  • ext4: 文件系统类型
  • defaults: 使用默认挂载选项
  • 0: 不进行备份
  • 2: fsck检查的顺序(0表示不检查,1通常用于根分区,2用于其他分区)

八、挂载硬盘并验证

上面修改后,并不会立即生效,你需要重载配置。

systemctl daemon-reload

然后,应用fstab中的新设置并挂载所有配置的设备:

sudo mount -a

验证挂载是否成功:

df -h | grep /data

输出应当显示3.6TB的分区已挂载到/data目录。
在这里插入图片描述

九、设置适当的权限

根据需求,我们有两种主要的权限配置方案:

方案一:简单共享(适合小型团队或信任度高的环境)

sudo chmod 777 /data

这将允许所有用户对目录有完全控制权(读、写、执行)。

方案二:基于组的访问控制(推荐,更安全)

# 创建数据访问组
sudo groupadd datagrp

# 设置目录所有权为root用户和datagrp组
sudo chown root:datagrp /data

# 设置权限:所有者和组成员可读写执行,其他用户只读
sudo chmod 775 /data

# 设置目录的SGID位,使新创建的文件继承组所有权
sudo chmod g+s /data

# 将需要访问的用户添加到组
sudo usermod -aG datagrp 用户名1
sudo usermod -aG datagrp 用户名2
# 用户需要重新登录才能生效

这种方法提供了更精细的权限控制,只有经过授权的用户才能写入数据目录。

十、创建目录结构(可选)

根据实际需求,可以在/data下创建更多子目录,例如:

sudo mkdir -p /data/shared /data/backups /data/projects
sudo chown root:datagrp /data/*
sudo chmod 775 /data/*
sudo chmod g+s /data/*

小计一下,不是专业运维,但是感觉很多运维干的事情都太不专业了,哎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值