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
:
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
/etc/fstab
的末尾。这个文件是在系统启动时,用于告诉系统哪些文件系统应该被挂载以及如何挂载它们。在这个字符串中,
/dev/sdb
是你要挂载的设备,/home/wwwroot
是挂载点,ext4
是文件系统类型,defaults
是默认的挂载选项,最后的两个 0
是指相关的备份和检查选项。在你执行了这个命令后,系统在每次启动时,都会自动挂载
/dev/sdb
到 /home/wwwroot
目录。返回结果
/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
扩容完成…
PHPMyAdmin报错说缓存目录失效,估计问题是出在上面复制文件的时候没有复制其权限与属性
点击数:29