磁盘永久挂载命令
作者:yasden
NAS的操作系统99%都是Linux系统,包括威联通和群晖的系统,不懂Linux就无法理解为什么威联通和群晖要这样操作和设置。学点Linux知识,玩NAS会更加得心应手。
本人的Linux系统下面有4块固态硬盘,一块1TB的京造nvme SSD作系统盘,另外两块2TB的移速SSD,一块1TB的梵想SSD(见下图)。我要将两块2TB的移速SSD,一块1TB的梵想SSD共3块5GB的SSD合并在一起,然后挂载到同一个目录下。
为什么要合并呢?一块一块硬盘单独用不行吗?真不行,一块硬盘最大2TB,有时候一个程序文件解压缩后就超过2TB了,老是报硬盘空间不够,无法继续。基于实际需要,因此有了本文的多个硬盘空间合并在一起的做法。这是Linux基础操作,必须掌握的基础用法。
终端下,查看硬盘信息的命令是:sudo fdisk -l
输入命令并回车后,看到的信息见下图:
往下拉,可以看到我的1TB的京造nvme M.2 固态被挂载到nvme0n1p1nvme0n1p3共3个目录下面了,分别是BIOS启动、EFI系统和Linux操作系统文件:
下图的/dev/sda就是我的2TB的移速SSD,/dev/sdb就是我的1TB的梵想SSD,dev/sdc就是我的2TB的移速SSD。本文的目的就是要将sda、sdb、sdc共3个sata的固态SSD合并成“一个硬盘”然后挂载到一个目录下来使用。
基础知识:
PV(physical volume)就是物理卷,也就是物理磁盘,例如我在上文是通过 fdisk -l 来查看我的操作系统有几块硬盘,我一共是4块硬盘。
VG(volume group)就是卷组,也就是一组物理磁盘的组合,VG可以有单块硬盘也可以有好多块硬盘。
LV(logical volume)就是逻辑卷,也就是在VG(指定的物理磁盘组)里面划分出来的东西,一个VG可以划分出多个LV。
下面用一张图来解释PV、VG和LV三者的关系(下图转载自网路):
第一步、pvcreate命令将物理硬盘分区初始化为物理卷
输入下面的三个命令并分别回车:
pvcreate /dev/sda
pvcreate /dev/sdb
pvcreate /dev/sdc\n
假如遇到下面的提示,就按照提示操作,先安装lvm2:
如果遇到提示,说权限不够的话,就在命令前面添加sudo,即:
sudo pvcreate /dev/sda
如果提示报错: cannot use /dev/sda:device is partitioned的话,用命令lsblk看看:
原来,sda下面还有一个sda1,修改命令为:
sudo pvcreate /dev/sda1
成功后出现下面的提示:
接下来,将第2块硬盘sdb加进去:
sudo pvcreate /dev/sdb
接下来,将第3块硬盘sdc加进去:
sudo pvcreate /dev/sdc
第二步、vgcreate 命令创建VG卷组
用下面的命令创建一个名字为VG_5G的卷组(卷组名字自己取即可,你也可以取一个abcd之类的名字的卷组):我的这三个硬盘加起来5GB,所以我取名为VG_5G:
sudo vgcreate VG_5G /dev/sda1
第三步、vgextend命令向卷组VG_5G中添加物理卷(名称VG_5G可自定义)
将第2个硬盘sdb加进去:
sudo vgextend VG_5G /dev/sdb
将第3个硬盘sdc也加进去:
sudo vgextend VG_5G /dev/sdc
第四步、lvcreate 命令创建逻辑卷
用下面的命令,将刚才3个磁盘的卷组(名词为VG_5G)创建为一个叫做my5G的逻辑卷(-l后面的100%VG这个参数的意思是,将3个磁盘100%的空间全部划分到my5G的逻辑卷上):
sudo lvcreate -l 100%VG -n my5G VG_5G
成功后显示上图的信息。
第五步、格式化逻辑卷
用下面的命令格式化刚才创建的逻辑卷,将/dev/VG_5G/my5G格式化为ext4文件系统(我记得ext4文件系统的单个文件最大16TB,不知道有没有记错,反正ext4文件系统一般情况下是够用了):
sudo mkfs -t ext4 /dev/VG_5G/my5G
格式化过程见下图:
完成后显示下面的信息:
第六步、挂载该逻辑卷到某个目录下
用下面的命令将刚才创建的逻辑卷挂载到/home/yasden/data下(注:/home/yasden/data是你自己选的目录,每个人选的目录都不一样的,想什么选就怎么选,如果没有/home/yasden/data这个目录,就用mkdir /home/yasden/data 命令来创建该目录):
sudo mount /dev/VG_5G/my5G /home/yasden/data
假如出现下图的提示,说明你的/home/yasden/目录下没有data这个文件夹,
用下面的命令:
mkdir /home/yasden/data
上面的命令回车来创建data文件夹后继续:
出现上面的信息代表已经挂载好了。
第七步、设置开机自动加载,不然每次开机都要用命令加载。
用下面的vi命令打开并编辑/etc/fstab文件(记得加sudo):
sudo vi /etc/fstab
将下面的语句加到etc/fstab里面,保存并退出(vi命令可以写一篇1万字的用法说明的文章,请自行研究vi命令的用法):
/dev/VG_5G/my5G /home/yasden/data ext4 defaults 0 0
保存之后,电脑重启一下,可以看见下面的硬盘信息,3个磁盘已经合并成一个5GB的大硬盘了:
如果发现/home/yasden/data 这个文件夹有个“锁”,代表用户权限不够,用下面的命令修改权限(777代表最高权限):
sudo chmod 777 /home/yasden/data
总结
这个方法可以将多个硬盘合并,变成“一个硬盘”来使用。
为什么要合并呢?一块一块硬盘单独用不行吗?真不行,一块硬盘最大2TB,有时候一个程序文件解压缩后就超过2TB了,老是报硬盘空间不够,无法继续。基于实际需要,因此有了本文的多个硬盘空间合并在一起的做法。
那为什么要买1TB、2TB的SSD呢?直接买一个5TB的不就好了吗?问题是5TB的SSD很贵很贵,比1TB、2TB这样买来凑在一起用的价格贵多了。为什么不买一个5TB的机械硬盘呢?因为机械硬盘太慢了,有些计算要求比较多的大数据文件,需要SSD,机械硬盘毕竟还是慢。
全文完,谢谢观看!
\n
晏治邹3208如何创建并挂载iscsi硬盘 -
戴非点18248533260 ______ 第一步:列出所有磁盘 命令: ll /dev/disk/by-path提示:如果无法确认数据盘设备名称,请使用df命令来确认系统盘的名称,从而排除挂错盘的情况. 第二步:格式化硬盘 命令: fdisk /dev/sdb 注意:图中箭头标注处续手动键入 第三步:创建分区 命令: mkfs.ext4 /dev/sdb1 第四步:挂载分区 命令: mkdir /data mount /dev/sdb1 /data # 将sdb这个硬盘挂载成为/data 第五步:将信息写入fstab,让系统开启自动挂载. 命令: echo "/dev/sdb1 /nas ext4 defaults 0 0" >> /etc/fstab
晏治邹3208linux如何挂载一块移动硬盘并且读出硬盘内文件? -
戴非点18248533260 ______ linux挂载移动硬盘,读取硬盘中的文件: 1、安装系统相关编译工具,命令:yum install gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel zlib-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel ...
晏治邹3208Linux中添加了新磁盘后,如何在其上创建文件系统? -
戴非点18248533260 ______ 用命令创建文件系统 如mkfs.vfat /dev/sdc mkfs.ext3 /dev/sdc mkfs命令你可以查下,可以创建很多文件系统
晏治邹3208如何将一个磁盘上的目录挂载到另一个目录下 -
戴非点18248533260 ______ 1,查看所要使用分区的 UUID.打开磁盘管理器,选择所需要的分区,我的是 DATA,点击工具栏属性.弹出对话框,将 UUID 拷贝下来.UUID 一般是这样的:FAB060E9-79F7-33FF-BE85-E1D3ABD3EDEA 并记住分区设备id,我的是 disk0s...
晏治邹3208如何给Linux添加一块新硬盘并且存储数据 -
戴非点18248533260 ______ 在/dev目录下,可以找到新硬盘,一般都标做sd? # cd /dev # ls sd* 这样就可以看到所有的硬盘了,一般最后一个就是新的硬盘了,这里假设是 sde 给硬盘进行分区 fdisk /dev/sde n (表示新建分区) p (主分区) 1 (分区编号) (接下来的分...
晏治邹3208linux挂载硬盘到哪个目录下 -
戴非点18248533260 ______ linux下查看目录的挂载分区命令如下: 1、使用df -h命令 2、第一列是磁盘分区,最后一列是挂载目录,中间还有分区使用率等.
晏治邹3208Linux中怎么使普通用户通过mount挂载磁盘分区??? -
戴非点18248533260 ______ 直接运行mount命令挂载分区一定要root权限. 如果想普通用户能直接挂载分区,只有这个做了. 1 使用root用户权限,将 /bin/mount命令创建一个副本,比如:all_mnt cp /bin/mount /bin/all_mnt 2 root用户为 all_mnt命令设置执行时自动赋予root...
晏治邹3208linux磁盘里的文件怎么挂载到其他目录? -
戴非点18248533260 ______ /dev目录下的都是设备映射的文件.所以不能互卦. 如果你现有系统要挂载另外一个已经存在的文件系统分区到你当前文件系统的/mnt目录.你可以用如下命令: mount /dev/sda3 /mnt 如果你/dev/sdb3分区里有一个mnt的目录. 那当前就有/mnt/mnt目录,你可以再通过它挂载 /dev/sdb1文件系统分区.可以用如下命令: mount /dev/sdb1 /mnt/mnt 执行以上命令首先是需要用root用户,其次对应分区设备已经格式化成Linux可识别文件系统.
晏治邹3208linux怎么移动文件到挂载的磁盘,求详细命令 -
戴非点18248533260 ______ 可以通过mv命令或者cp命令来实现:mv命令是将文件或者文件夹移动到一个地方,例如 mv /home/test/1.txt /dev/sda2/ 这条命令是将/home/test/下1.txt文件移动到 /dev 设备下的 sda2 这个硬盘 同理cp命令:cp -rf /home/test/1.txt /dev/sda2/ mv命令是移动文件或文件夹,移动后原来的文件会被删除,cp命令是复制,复制完成后原来的文件还存在.