如何在Debian系统中查看和挂载磁盘
Table of Contents
我有一台Linux家庭服务器,在此服务器中安装了Jellyfin影音应用,供平时家庭观看高质量影片。但是每年总会出现几次掉盘的问题,所以偶尔需要操作挂载磁盘。由于平时不经常操作磁盘挂载这类运维操作,所以在需要时总是记不住命令。但是对大致的流程有个印象,第一步需要找到目标磁盘的分区信息,第二步执行mount命令挂载磁盘。另外还需要注意挂载磁盘要考虑权限问题。
经历多次搜索和大模型问答后,觉得还是记录一下这个过程,下次可以直接查找自己的文档来进行操作。
# 检查磁盘是否被系统识别
首先,插入硬盘后需要检查系统是否检测到了硬盘。通常,使用lsblk或fdisk -l命令可以查看所有块设备,包括新插入的硬盘。如果用户没有看到新硬盘,可能需要检查硬件连接,或者确认内核是否加载了相关驱动。我的情况是在正常使用过程中掉盘,所以磁盘检测和分区这些应该都不是问题。
我平时使用fdisk命令比较多。不过我们可以先看下两个工具的输出结果,看看这两种工具的差异。
执行lsblk命令后可以看到如下输出。注意如下内容会因为操作系统不同或者用户连接的磁盘有所差异。如下信息中可以看到两个磁盘,分别是sda和nvme0n1,其中后者是我操作系统的磁盘,是一块M.2的固态硬盘。前者是一块大容量的机械硬盘,通过typec连接到我的机器。我当前的目的便是将sda这块磁盘挂载到操作系统中。
> sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 7.3T 0 disk
├─sda1 8:1 0 200M 0 part
└─sda2 8:2 0 7.3T 0 part
nvme0n1 259:0 0 931.5G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
├─nvme0n1p2 259:2 0 930.1G 0 part /
└─nvme0n1p3 259:3 0 977M 0 part [SWAP]
执行fdisk命令后我们能看到更详细的信息,比如磁盘容量、分区信息、厂商信息等。
> sudo fdisk -l
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Fanxiang S790 1TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 5AE666F9-1B41-427C-AD5B-3CF8E8AACE0E
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 1951522815 1950472192 930.1G Linux filesystem
/dev/nvme0n1p3 1951522816 1953523711 2000896 977M Linux swap
GPT PMBR size mismatch (4294967294 != 15628053167) will be corrected by write.
Disk /dev/sda: 7.28 TiB, 8001563222016 bytes, 15628053168 sectors
Disk model: 000A-2KE101
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 97BEB77D-2907-4C84-BC78-5F17DD97E135
Device Start End Sectors Size Type
/dev/sda1 40 409639 409600 200M EFI System
/dev/sda2 411648 15628052479 15627640832 7.3T Microsoft basic data
# 挂载磁盘
通过mount命令可以操作磁盘的挂载,详细命令如下:
sudo mount -o uid=1000,gid=1000 /dev/sda2 /media/seagate8t
其中几个重要的参数做一下简单的说明:
-o uid=1000,gid=1000是挂载命令的选项options,代表挂载磁盘的访问权限。uid和gid可以通过id命令查询。/dev/sda2磁盘的内容分区,我们通过分区的大小可以简单判断。比如我的硬盘是8T规格,其中7.3T的sda2分区应该是我的数据分区。/media/seagate8t是操作系统的挂载点,这个挂载点需要提前创建,否则挂载命令会提示出错。
执行挂载命令后,我们进入挂载点目录,便可以进行常规的磁盘读写操作了。
sam@um480xt:pts/0->/media/seagate8t (0)
> ll
total 2.3M
drwxr-xr-x 2 sam sam 256K Apr 10 14:10 backup
drwxr-xr-x 2 sam sam 256K Mar 30 02:43 dates
drwxr-xr-x 2 sam sam 256K Jan 14 2024 fonts
drwxr-xr-x 2 sam sam 256K Mar 15 02:03 hongkongdoll
drwxr-xr-x 2 sam sam 256K May 30 10:24 Movies
drwxr-xr-x 10 sam sam 256K Jan 15 2024 Music
drwxr-xr-x 2 sam sam 256K Apr 6 18:28 PrivateMovies
-rwxr-xr-x 1 sam sam 5 Jun 1 15:54 readme.md
drwxr-xr-x 47 sam sam 256K Apr 21 14:47 Shows