在太阳下
不管你喜不喜欢,高不高兴,爱与不爱;太阳照旧照耀着你!温暖着你!

Debian 11 挂载 磁盘,扩容/home/wwwroot目录

Debian 11 挂载 磁盘,扩容/home/wwwroot目录
TIME 2023-06-23 09:07

首先,你需要确定你要挂载的硬盘的设备名。可以使用 lsblk 或者 fdisk -l 命令查看你的设备名
lsblk 命令查看设备名

lsblk

返回结果

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk 
├─sda1   8:1    0  571M  0 part /boot
└─sda2   8:2    0 39.4G  0 part /
sdb      8:16   0    1T  0 disk 
sr0     11:0    1 1024M  0 rom

可以看到 sda 磁盘空间为40G, sdb 磁盘空间为1T
fdisk -l 命令查看设备名

fdisk -l

返回结果

Disk /dev/sdb: 1 TiB, 1099511627776 bytes, 2147483648 sectors   # 这一行告诉我们,你有一个设备名为 /dev/sdb 的磁盘,大小为 1 TiB,包含 2147483648 个扇区。 
Disk model: VBOX HARDDISK                                       # 这表示该磁盘的型号是 “VBOX HARDDISK”,看起来像是一个在 VirtualBox 中创建的虚拟磁盘。 
Units: sectors of 1 * 512 = 512 bytes                           # 这表示每个扇区的大小是 512 字节。 
Sector size (logical/physical): 512 bytes / 512 bytes           # 这一行告诉我们该磁盘的扇区大小,逻辑扇区/物理扇区,操作系统从磁盘读取或写入数据的最小单位。在这种情况下,大小为512字节。
I/O size (minimum/optimal): 512 bytes / 512 bytes               # 这一行提供了磁盘I/O操作的信息。最小/最优数据块大小。在这种情况下,大小为512字节


Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors      # 这表示你有另一个设备名为 /dev/sda 的磁盘,大小为 40 GiB,包含 83886080 个扇区。 Disk model: VBOX HARDDISK
Disk model: VBOX HARDDISK                                       # 这表示该磁盘的型号是 “VBOX HARDDISK”,看起来像是一个在 VirtualBox 中创建的虚拟磁盘。
Units: sectors of 1 * 512 = 512 bytes                           # 这表示每个扇区的大小是 512 字节。
Sector size (logical/physical): 512 bytes / 512 bytes           # 这一行告诉我们该磁盘的扇区大小,逻辑扇区/物理扇区,操作系统从磁盘读取或写入数据的最小单位。在这种情况下,大小为512字节。
I/O size (minimum/optimal): 512 bytes / 512 bytes               # 这一行提供了磁盘I/O操作的信息。最小/最优数据块大小。在这种情况下,大小为512字节
Disklabel type: dos                                             # 这表示 /dev/sda 磁盘使用 DOS 风格的磁盘标签 
Disk identifier: 0x043e1b00                                     # 是一个磁盘的唯一标识符,也称为磁盘签名。这是一个随机生成的十六进制数,用于在操作系统中唯一标识每个物理磁盘

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1  *       2048  1171455  1169408  571M 83 Linux  # 这一行表示 /dev/sda 磁盘上有一个分区 /dev/sda1,这个分区从第 2048 个扇区开始,到第 1171455 个扇区结束,总共 1169408 个扇区,大小约为 571M,类型是 Linux。
/dev/sda2       1171456 83883647 82712192 39.4G 83 Linux  # 这一行表示 /dev/sda 磁盘上还有一个分区 /dev/sda2,这个分区从第 1171456 个扇区开始,到第 83883647 个扇区结束,总共 82712192 个扇区,大小约为 39.4G,类型也是 Linux。

磁盘上每个分区的详细信息。下面是每个列标题的含义
Device:这是分区的设备文件名。在 Linux 中,硬盘分区通常被表示为 `/dev/sda1`、`/dev/sda2` 等。
Boot:如果这个分区是启动分区(即,包含启动加载程序的分区),那么这里会有一个星号(*)。
Start:这是分区在磁盘上的起始扇区。
End:这是分区在磁盘上的结束扇区。
Sectors:这是分区包含的扇区总数。
Size:这是分区的大小,通常用 M(兆字节)或 G(千兆字节)来表示。
Id:这是分区类型的标识符。例如,`83` 是 Linux 分区,`82` 是 swap 分区。
Type:这是分区的类型。这可能是 `Linux`、`Linux swap`、`Extended` 等等,取决于 `Id` 的值。
需求与目的
现在正在使用的是 40 GiB 磁盘空间的 /dev/sda ,但是由于磁盘使用空间不足需要将其扩容
用户数据主要存放在 /dev/sda 的 /home/wwwroot 目录里面
因为将一个设备挂载到一个已经有文件的目录时,这些原有的文件将会被”隐藏”起来,因为这个目录的路径现在指向了你挂载的设备。在设备挂载的状态下,你无法访问这些被隐藏的文件。


如果你想扩展 /home/wwwroot 目录的空间,一种可能的方法是将 /dev/sdb 挂载为 /home/wwwroot。但这需要你首先将 /home/wwwroot 目录的当前内容迁移到 /dev/sdb。下面是具体步骤:

1.首先,确保 /dev/sdb 已经被正确地格式化,并有一个文件系统。如果你还没有格式化,可以使用如下命令:
记住,这将会删除 /dev/sdb 上的所有数据。

sudo mkfs.ext4 /dev/sdb

返回结果

mke2fs 1.46.2 (28-Feb-2021)                                                       # 正在使用的 mke2fs 的版本是1.46.2,这个版本是在 2021年2月28日发布的
Creating filesystem with 268435456 4k blocks and 67108864 inodes                  # 这是在创建一个文件系统,该文件系统由268435456个4KB的块和67108864个索引节点(inodes)组成。块是存储数据的单位,而索引节点(inode)是存储文件元数据(如文件大小、修改日期等)的数据结构。 
Filesystem UUID: db801ba3-5114-4f11-8867-1946ce1ffff2                             # 每个文件系统都有一个独特的UUID,这是此文件系统的UUID。
Superblock backups stored on blocks:                                              # 列出的一系列数字是superblock的备份所在的块的位置。Superblock是文件系统的元数据,包含了关于文件系统的重要信息。
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848

Allocating group tables: done                                      # 这是分配组表的过程。在ext2/ext3/ext4文件系统中,磁盘被分为一组一组的,每一组都有自己的inode表和数据块。             
Writing inode tables: done                                         # 这个步骤是在写入inode表。inode是一个数据结构,存储了文件系统中每个文件和目录的元数据信息,包括文件大小、文件的创建、修改和访问时间等。                    
Creating journal (262144 blocks): done                             # 这是创建日志的过程。日志是一个特殊的文件系统区域,用于记录所有即将发生的文件系统更改。如果系统在写入这些更改之前崩溃,那么在下次启动时,这些日志记录可以用于恢复文件系统到一致的状态。 
Writing superblocks and filesystem accounting information: done    # 这个步骤是在写入超级块和文件系统会计信息。超级块是存储文件系统元数据的区域,包括inode和块的总数量、未使用的inode和块的数量、文件系统的状态等信息。

 

2.然后,挂载新的硬盘到一个临时目录,例如 /mnt/temp

sudo mkdir /mnt/temp ; sudo mount /dev/sdb /mnt/temp

3.使用 rsync 或 cp 命令复制 /home/wwwroot 目录的内容到 /mnt/temp

用“rsync” 数据同步和文件复制工具复制文件

sudo rsync -avh /home/wwwroot/ /mnt/temp/

如果报错

sudo: rsync: command not found

那么这表示系统中没有找到 “rsync” 命令。“rsync” 是一个在 Unix/Linux 系统中常用的数据同步和文件复制工具。
Debian 11 安装“rsync”命令

sudo apt-get update ; sudo apt-get install rsync

安装后,再次运行上面的 “rsync” 复制命令

sudo rsync -avh /home/wwwroot/ /mnt/temp/

或者用“cp” 复制文件和目录的命令行工具复制文件(强烈建议不要用cp命令完成此项操作)

sudo cp -R /home/wwwroot/* /mnt/temp/

等待复制完成后,核对数据

4.如何核对 /home/wwwroot/ 目录和 /mnt/temp/ 目录的文件的一致性
你可以使用 diff 命令。diff 命令可以比较两个目录的内容,包括子目录。下面是如何使用 diff 来比较这两个目录的命令

diff -r /home/wwwroot/ /mnt/temp/

返回结果

Only in /mnt/temp/: lost+found

diff 命令的输出 “Only in /mnt/temp/: lost+found” 表示在 /mnt/temp/ 目录中存在一个名为 lost+found 的目录或文件,而在 /home/wwwroot/ 目录中并没有这个目录或文件。这是两个目录的唯一差异。

在 Unix 和 Linux 文件系统中,lost+found 是一个特殊的目录,通常在每个分区的根目录下。这个目录用于存放在文件系统检查(fsck 命令)过程中恢复的丢失的或损坏的文件和目录。如果你没有运行过 fsck,或者文件系统没有遇到过问题,那么这个目录通常是空的。

除了 lost+found 目录,如果 diff 命令没有其它提示,表示两个目录具有一致性

5挂载 /dev/sdb/home/wwwroot

sudo mount /dev/sdb /home/wwwroot

6.最后,更新 /etc/fstab 以确保在重启后,新硬盘将自动挂载到 /home/wwwroot

echo "/dev/sdb /home/wwwroot ext4 defaults 0 0" | sudo tee -a /etc/fstab
这个命令将字符串 “/dev/sdb /home/wwwroot ext4 defaults 0 0” 添加到了文件 /etc/fstab 的末尾。这个文件是在系统启动时,用于告诉系统哪些文件系统应该被挂载以及如何挂载它们。
在这个字符串中,/dev/sdb 是你要挂载的设备,/home/wwwroot 是挂载点,ext4 是文件系统类型,defaults 是默认的挂载选项,最后的两个 0 是指相关的备份和检查选项。
在你执行了这个命令后,系统在每次启动时,都会自动挂载 /dev/sdb/home/wwwroot 目录。

返回结果

/dev/sdb /home/wwwroot ext4 defaults 0 0
返回结果 “/dev/sdb /home/wwwroot ext4 defaults 0 0” 表示该条目已成功添加到 /etc/fstab 文件中。

通过这个过程,你实际上是将 /home/wwwroot 的内容移到了新的硬盘,并且挂载了新的硬盘到 /home/wwwroot,从而扩展了 /home/wwwroot 的存储空间。在进行这个操作的时候,一定要确保你已经备份了重要的数据,防止任何可能的数据丢失。

查看 /home/wwwroot 目录扩容后的容量

df -h /home/wwwroot

返回结果

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb       1007G  6.1G  950G   1% /home/wwwroot

可以看到,已用6.1G,还剩950G
扩容完成…

注意在第3步复制文件的时候,用cp命令复制,没有复制目录的属性与权限,会导致
PHPMyAdmin报错说缓存目录失效,估计问题是出在上面复制文件的时候没有复制其权限与属性

点击数:29

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
Verified by MonsterInsights