您现在的位置是:首页 >其他 >Linux下新加新磁盘分区及挂载网站首页其他

Linux下新加新磁盘分区及挂载

wangliang888888 2024-06-17 10:13:24
简介Linux下新加新磁盘分区及挂载

一:新插入磁盘查看

查看插入磁盘

法1:$sudo fdisk -l

在这里插入图片描述

法2: $sudo lsblk

在这里插入图片描述

二:磁盘分区及格式化

1: 分区

$sudo fdisk /dev/nvme0n1
进入分区工具后,我们可以输入 m 看指令说明:
在这里插入图片描述

Command (m for help): n
>> 
Partition type
  p primary (0, primary, 0 extended, 4free)
  e extended (container for logical partitions)

这里,我们可以给一块硬盘创建最多4个主分区,和若干逻辑分区,由于我们这里只为该硬盘创建一个分区,那么我们即创建一个主分区即可。

Select (default p):p
Partition number (1-4, default 1): 1
Frist sector (2048-4194303, default 2048): 2048
Last sector, *sectors or *size{K,M,G,T,P} (2048-4194303, default 4194303): 4194303
>> Create a new partition 1 of type 'Linux' and of size 2GiB
Command (m for help):w

我们创建分区的操作为:
**- p 命令创建一个主分区

  • 选择默认创建第一个分区
  • 设置分区的开始位置
  • 设置分区的结束位置,因为只设置一个分区,因此都选择默认选项
  • w 命令保存分区设置**

2:格式化

使用mkfs命令格式化分区,具体命令如下:

sudo mkfs -t ext4 /dev/nvme0n1p1

执行命令后,可以看到分区格式化完成

三:磁盘分区挂载

1:手动挂载

# 我们在 ~ 目录下创建一个 data_1T 的目录,并将新分区挂载到这里
mkdir ~/data_1T
sudo chow pegasus:pegasus -R ~/data_1T
sudo mount /dev/nvme0n1p1 ~/data_1T

df -h 或者mount命令 查看
在这里插入图片描述在这里插入图片描述

2:开机自启挂载

我们将先备份原有的 /etc/fstab 文件
$ sudo cp /etc/fstab /etc/fstab_bak
fstab文件字段说明:
挂载设备 : 不是我们通常理解的文件系统,而是指设备(硬盘及其分区,DVD光驱等)。它告知我们设备(分区)的名字,这是你在命令行中挂载(mount)、卸载(umount)设备时要用到的。
挂载点:告诉我们设备挂载到哪里。
文件系统类型:Linux支持许多文件系统。 要得到一个完整的支持名单查找mount man-page。典型 的名字包括这些:ext2, ext3, reiserfs, xfs, jfs,iso9660, vfat, ntfs, swap和auto, ‘auto’ 不是一个文件系统,而是让mount命令自动判断文件类型,特别对于可移动设备,软盘,DVD驱动器,这样做是很有必要的,因为可能每次挂载的文件类型不一致。
文件系统参数:这部分是最有用的设置!!! 它能使你所挂载的设备在开机时自动加载、使中文显示不出现乱码、限制对挂载分区读写权限。它是与mount命令的用法相关的,要想得到一个完整的列表,参考mount manpage.
备份命令:dump utility用来决定是否做备份的. dump会检查entry并用数字来决定是否对这个文件系统进行备份。允许的数字是0和1。如果是0,dump就会忽略这个文件系统,如果是1,dump就会作一个备份。大部分的用户是没有安装dump的,所以对他们而言这个entry应该写为0。
是否以fsck检验扇区:启动的过程中,系统默认会以fsck检验我们的 filesystem 是否完整 (clean)。 不过,某些 filesystem 是不需要检验的,例如内存置换空间 (swap) ,或者是特殊文件系统例如 /proc 与 /sys 等等。fsck会检查这个头目下的数字来决定检查文件系统的顺序,允许的数字是0, 1, 和2。0 是不要检验, 1 表示最早检验(一般只有根目录会配置为 1), 2 也是要检验,不过1会比较早被检验啦!一般来说,根目录配置为1,其他的要检验的filesystem都配置为 2 就好了。

常用参数:
noatime 关闭atime特性,提高性能,这是一个很老的特性,放心关闭,还能减少loadcycle
defaults 使用默认设置。等于rw,suid,dev,exec,auto,nouser,async,具体含义看下面的解释。
自动与手动挂载:
auto 在启动或在终端中输入mount -a时自动挂载
noauto 设备(分区)只能手动挂载
读写权限:
ro 挂载为只读权限
rw 挂载为读写权限
可执行:
exec 是一个默认设置项,它使在那个分区中的可执行的二进制文件能够执行
noexec 二进制文件不允许执行。千万不要在你的root分区中用这个选项!!!
I/O同步:
sync 所有的I/O将以同步方式进行
async 所有的I/O将以非同步方式进行
户挂载权限:
user 允许任何用户挂载设备。 Implies noexec,nosuid,nodev unless overridden.
nouser 只允许root用户挂载。这是默认设置。
临时文件执行权限:
suid Permit the operation of suid, and sgid bits. They are mostly used to allow users on a computer system to execute binary executables with temporarily elevated privileges in order to perform a specific task.
nosuid Blocks the operation of suid, and sgid bits.

四:相关操作的shell自动化

#! /bin/sh
 
check_nvme0n1()
{
    if [ -e /dev/nvme0n1 ]; then
        return 1
    else
        return 0
    fi
}
 
# 分区
do_partition()
{
echo "n
p
1
2048
2000409263
w
" | fdisk /dev/nvme0n1
}
 
#格式化
check_partition_and_init()
{
    check_nvme0n1
 
    if [ $? -eq "1" ]; then
        if [ ! -e /dev/nvme0n1p1 ]; then 
            do_partition
            mkfs -t ext4 /dev/nvme0n1p1
            echo "Partitioning and initialization are complete"
        fi
 
        mkdir -p ~/data_1T
        mount /dev/nvme0n1p1   ~/data_1T
        echo "nvme0n1 mount complete"
        sync
    else
        echo " nvme0n1 faild "
    fi
}
 
echo " nvme0n1 start mount "
check_partition_and_init
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。