摘要
挂载新硬盘,本文作者整理了几乎所有相关的知识点
作者采用的是本文第二种挂载方式(LVM),只用了下面6条命令搞定
# 说明:
# /dev/mapper/appvg-mylv1 逻辑卷完整名称
#
# /dev/mapper`目录是Linux系统中用于存储设备映射信息的特殊目录
# appvg: sudo vgdisplay 命令 显示的 VG Name
# mylv1:逻辑卷名
# 创建逻辑卷
sudo lvcreate -n mylv1 -L 2TG appvg
sudo lvcreate -n mylv2 -l +100%FREE appvg
# 格式化逻辑卷
sudo mkfs -t xfs /dev/mapper/appvg-mylv1
sudo mkfs -t ext4 /dev/mapper/appvg-mylv2
# 挂载
sudo mount /dev/mapper/appvg-mylv1 /data1
sudo mount /dev/mapper/appvg-mylv2 /data2
效果
一个xfs格式,一个ext4格式
名词
LVM(Logical Volume Manager)
PV(Physical Volume) 物理卷
LV(Logic Volume)逻辑卷
VGs(Volume Groups)卷组
PVs(Physical Volumes,)物理卷
整盘方式挂载步骤(普通方式)
本文下面有高级方式
1. 查看新硬盘
首先,你需要确认新硬盘已经被系统识别。可以使用lsblk
或fdisk -l
命令来查看所有磁盘和分区。
lsblk
# 或者
sudo fdisk -l
确认 LVM 状态:
首先,你需要确认你的系统上是否已经初始化了 LVM,并且你想要挂载的卷是否已经被识别为 LVM 的一部分。
sudo vgdisplay
sudo pvdisplay
2. 分区
如果硬盘是新硬盘,你需要先对其进行分区。可以使用fdisk
工具进行分区。
sudo fdisk /dev/sdX # /dev/sdX是你的新硬盘设备名,例如/dev/sdb
在fdisk
中,你可以通过输入m
查看所有命令,然后使用n
创建新分区,w
写入并退出。例如:
sudo fdisk /dev/sdX # /dev/sdX是你的新硬盘设备名,例如/dev/sdb
在fdisk
中,你可以通过输入m
查看所有命令,然后使用n
创建新分区,w
写入并退出。例如:
n # 新建分区
p # 主分区
1 # 分区号
# 默认从起始位置开始,按Enter确认
+100M # 创建一个100MB的分区作为示例
t # 更改分区类型
83 # Linux文件系统类型(83为Linux文件系统)
w # 写入并退出
3. 格式化分区
创建分区后,你需要格式化它。例如,使用mkfs.ext4
来格式化为ext4文件系统:
sudo mkfs.ext4 /dev/sdX1 # /dev/sdX1是你的新分区,例如/dev/sdb1
4. 创建挂载点
创建一个目录作为挂载点:
sudo mkdir /mnt/newdisk
5. 挂载分区
将分区挂载到刚才创建的目录:
sudo mount /dev/sdX1 /mnt/newdisk
6. 验证挂载
使用df -h
或ls /mnt/newdisk
来验证是否挂载成功。
7. 持久化挂载(可选)
为了在系统重启后也能自动挂载该分区,你可以编辑/etc/fstab
文件:
sudo nano /etc/fstab
在文件末尾添加一行,例如:
/dev/sdX1 /mnt/newdisk ext4 defaults 0 2
保存并关闭文件。重新挂载以应用更改(虽然通常重启后会自动挂载):
sudo mount -a
注意事项
-
确保替换命令中的
/dev/sdX
和/dev/sdX1
为实际的设备名和分区号。 -
在格式化前确保没有重要数据,因为格式化会清除所有数据。
-
使用UUID而非设备名在
/etc/fstab
中挂载可以避免因设备名改变导致的问题。你可以通过sudo blkid
查看UUID,然后在/etc/fstab
中使用UUID而非设备名。例如:
UUID=xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/newdisk ext4 defaults 0 2
-
根据你的需求选择合适的文件系统类型(如ext4, xfs等)。
LVM方式挂载步骤(高级方式)
1、确认 LVM 状态
首先,你需要确认你的系统上是否已经初始化了 LVM,并且你想要挂载的卷是否已经被识别为 LVM 的一部分。
sudo vgdisplay
sudo pvdisplay
这些命令将显示所有卷组(Volume Groups, VGs)和物理卷(Physical Volumes, PVs)的信息。
举例说明(有助新手理解),这里两个卷组,其中一个1T,一个6T,两卷组由7个1T的硬盘组成,卷组名分别是:appvg、ctyunos
[zhao*****@GZ***-PM153160 ~]$ sudo vgdisplay
--- Volume group ---
VG Name appvg
System ID
Format lvm2
Metadata Areas 7
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 1
Max PV 0
Cur PV 7
Act PV 7
VG Size 6.11 TiB
PE Size 4.00 MiB
Total PE 1602496
Alloc PE / Size 1602496 / 6.11 TiB
Free PE / Size 0 / 0
VG UUID pLWSgG-Sn2w-OwJy-2cSj-HHfV-VPeW-YiIJtL
--- Volume group ---
VG Name ctyunos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size <1.09 TiB
PE Size 4.00 MiB
Total PE 285181
Alloc PE / Size 285181 / <1.09 TiB
Free PE / Size 0 / 0
VG UUID Qr3AfP-ehds-0OvY-qoFT-VMb1-c7jK-enKELZ
pvdisplay可查看物理盘(多少块硬盘,这个直观,就略了)
2、创建逻辑卷:
如果你还没有创建逻辑卷,你需要先创建一个。使用 lvcreate
命令来创建一个新的逻辑卷。例如:
# 示例1
sudo lvcreate -n mylogicalvolume -L 10G /dev/mapper/vgname-lvname
# 示例2
# 创建指定大小的逻辑卷
sudo lvcreate -n mylv2 -L 4TG appvg
# 示例3
# 使用所有剩余空间创建逻辑卷,使用剩余空间的百分比创建
sudo lvcreate -n mylv2 -l +100%FREE appvg
这里 vgname
是你的卷组名称,lvname
是你想要创建的逻辑卷的名称,-L 10G
指定了逻辑卷的大小。
查看linux 磁盘卷组的剩余空间
如果你的系统使用LVM,可以使用lvs
命令查看逻辑卷的详细信息,包括剩余空间。
首先,你需要确认你的逻辑卷组
[zhao****@GZ***-PM153160 ~]$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
appvg 7 3 0 wz--n- 6.11t 0
ctyunos 1 3 0 wz--n- <1.09t 0
然后,查看该卷组中的逻辑卷:
[zha****@GZ***-PM153160 ~]$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
app appvg -wi-ao---- <1000.02g
mylv1 appvg -wi-a----- 2.00t
mylv2 appvg -wi-a----- <3.14t
home ctyunos -wi-ao---- <1.02t
root ctyunos -wi-ao---- 70.00g
swap ctyunos -wi-ao---- 4.00g
3、格式化逻辑卷
# ~~~~ 精华,这节说明很重要,一定要仔细阅读 ~~~~*******
命令:mkfs -t xfs /dev/mapper/appvg-mylv1
appvg:卷组名称
mylv1:上面创建的逻辑卷名称
appvg-mylv1:卷组名称 + 逻辑卷名称 两个加在一起组成逻辑卷全名(格式化和挂载都要使用到全名,/dev/mapper/+ 全名)
[dai***@GZ***-PM153160 ~]$ mkfs -t xfs /dev/mapper/appvg-mylv1
mkfs.xfs: cannot open /dev/mapper/appvg-mylv1: Permission denied
[zhaozheng@GZCRM-PM153160 ~]$ sudo mkfs -t xfs /dev/mapper/appvg-mylv1
meta-data=/dev/mapper/appvg-mylv1 isize=512 agcount=4, agsize=134217728 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=536870912, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=262144, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Discarding blocks...Done.
[dai***@GZ***-PM153160 ~]$
查看文件系统格式
[zhaozheng@GZCRM-PM153160 data2]$ df -Th
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 126G 0 126G 0% /dev
tmpfs tmpfs 126G 0 126G 0% /dev/shm
tmpfs tmpfs 126G 698M 125G 1% /run
tmpfs tmpfs 126G 0 126G 0% /sys/fs/cgroup
/dev/mapper/ctyunos-root ext4 69G 4.7G 61G 8% /
tmpfs tmpfs 126G 2.5M 126G 1% /tmp
/dev/sda1 ext4 976M 107M 803M 12% /boot
/dev/mapper/ctyunos-home ext4 1023G 2.0G 969G 1% /home
tmpfs tmpfs 26G 0 26G 0% /run/user/0
/dev/mapper/appvg-app xfs 1000G 7.1G 993G 1% /app
tmpfs tmpfs 26G 0 26G 0% /run/user/1000
/dev/mapper/appvg-mylv1 xfs 2.0T 15G 2.0T 1% /data1
/dev/mapper/appvg-mylv2 ext4 3.1T 89M 3.0T 1% /data2
4、挂载逻辑卷:
创建逻辑卷后,你可以使用 mount
命令来挂载它:
sudo mount /dev/mapper/vgname-lvname /mount/point
确保 /mount/point
是一个存在的目录,如果不存在,你需要先创建它:
sudo mkdir /mount/point
sudo mount /dev/mapper/vgname-lvname /mount/point
5、自动挂载:
如果你希望在系统启动时自动挂载这个逻辑卷,你可以编辑 /etc/fstab
文件:
echo '/dev/mapper/vgname-lvname /mount/point ext4 defaults 0 0' | sudo tee -a /etc/fstab
替换 ext4
为你的文件系统类型。
通过以上步骤,你应该能够解决 "unknown filesystem type 'LVM2_member'" 的错误,并成功挂载你的 LVM 逻辑卷。如果仍然遇到问题,请检查你的 LVM 配置或查看相关日志文件以获取更多信息。
查看linux 磁盘卷组的剩余空间
在Linux中,查看磁盘卷组的剩余空间可以通过不同的命令和工具实现,具体取决于你的系统使用的是哪种类型的卷管理工具。最常见的卷管理工具有LVM(Logical Volume Manager)、XFS等。下面是一些常用的方法:
1. 使用df
命令
df
命令用于显示文件系统的磁盘空间使用情况,包括挂载点、已用空间、可用空间等。
df -h
这里的-h
选项表示以易读的格式(如GB、MB)显示信息。
2. 使用lsblk
命令
lsblk
命令列出所有可用的存储设备及其分区和挂载点。
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,LABEL,UUID
这个命令会显示设备的名称、大小、文件系统类型、挂载点、标签和UUID,但不直接显示剩余空间。你可以结合df
命令来查看挂载点的使用情况。
3. 使用lvs
(Logical Volume Manager)
如果你的系统使用LVM,可以使用lvs
命令查看逻辑卷的详细信息,包括剩余空间。
首先,你需要确认你的逻辑卷组:
vgs
然后,查看该卷组中的逻辑卷:
lvs
这将列出所有逻辑卷及其状态,包括剩余空间。
4. 使用xfs_info
(针对XFS文件系统)
如果你的文件系统是基于XFS的,可以使用xfs_info
命令来查看文件系统的详细信息,包括剩余空间。
xfs_info /path/to/mountpoint
将/path/to/mountpoint
替换为你的挂载点路径。
5. 使用vgdisplay
和lvdisplay
(针对LVM)
如果你想要更详细的信息,可以使用vgdisplay
和lvdisplay
命令:
vgdisplay vg_name # vg_name是卷组名
lvdisplay /dev/vg_name/lv_name # vg_name是卷组名,lv_name是逻辑卷名
这些命令提供了关于卷组和逻辑卷的详细信息,包括剩余空间。
结论
选择哪种方法取决于你的具体需求和你使用的文件系统类型。对于大多数情况,df -h
和结合使用lsblk
和df -h
是一个很好的起点。对于使用LVM的系统,lvs
和相关的LVM命令提供了更详细的逻辑卷信息。对于特定文件系统如XFS,使用其特定的命令(如xfs_info
)会更直接地提供所需信息。
ext4与xfs区别
EXT4和XFS是两种常用的文件系统,它们在Linux系统中各有优缺点,适用于不同的场景。
性能和扩展性
- 并发性能:XFS在多CPU环境下的并发性能优于EXT4,因为它采用了一些优化措施,如支持多个并发操作12。在高并发压力下,XFS的性能比EXT4高5-10%左右2。
- 文件系统扩展:EXT4可以在线扩展文件系统大小,而XFS需要卸载文件系统并执行特殊的命令来扩展1。
文件系统大小和单个文件大小限制
- 文件系统大小:EXT4最大支持16TB的文件系统,而XFS最大支持8EB的文件系统12。
- 单个文件大小:EXT4最大支持16TB的文件大小,而XFS最大支持8EB的文件大小12。
碎片管理和数据一致性
- 碎片管理:EXT4在文件删除时可能会出现碎片,需要定期进行碎片整理。XFS采用延迟分配技术,可以减少文件碎片1。
- 数据一致性:EXT4使用Journaling来确保文件系统在崩溃后可以恢复到先前的状态。XFS也有Journaling功能,但它不是必需的,因为XFS在设计时就考虑了数据一致性