夸客
夸客
Published on 2025-01-11 / 1 Visits
0
0

新磁盘挂载到Linux过程

需要解决的问题

新硬盘 usb 连接电脑后,如何分区并挂载到 Linux 系统。

挂载步骤

1. 挂载前检查及整体思路(来自 AI)

1.1. 步骤 1:查看分区信息

运行以下命令以检查是否可以识别到硬盘的分区:

sudo fdisk -l

这会列出所有磁盘及其分区。如果 sdb 显示为空,说明该硬盘可能未分区或分区表有问题。

1.2. 步骤 2:检查文件系统信息

如果 sdb 有分区,但没有显示文件系统类型,可以运行以下命令检查:

sudo lsblk -f

或者使用 blkid 查看分区的 UUID 和文件系统:

sudo blkid

1.3. 步骤 3:手动挂载分区

如果 fdisklsblk 能识别到分区,假设分区为 /dev/sdb1,可以创建一个挂载点并挂载:

sudo mkdir -p /mnt/usb_array
sudo mount /dev/sdb1 /mnt/usb_array

1.4. 步骤 4:检查挂载是否成功

挂载成功后,运行以下命令检查:

df -h

或者直接访问 /mnt/usb_array 目录。

1.5. 可能问题及解决

  1. 未分区或分区表损坏
    如果 fdisk 显示硬盘为空,可以尝试使用 gpartedparted 创建新的分区表:
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary ext4 0% 100%

然后格式化新分区:

sudo mkfs.ext4 /dev/sdb1
  1. 文件系统损坏
    如果文件系统损坏,可以尝试修复:
sudo fsck /dev/sdb1

2. 分区

通过上述命令,我发现我的 USB 硬盘阵列柜识别为 /dev/sdb,但它没有分区(没有 /dev/sdb1 等条目),因此需要先进行分区和格式化,然后才能挂载。

2.1. 步骤 1:创建分区

使用 fdisk 工具对 /dev/sdb 进行分区:

sudo fdisk /dev/sdb

进入 fdisk 后,按以下步骤操作:

  1. 输入 n 创建一个新分区。

  2. 选择 p(主分区)。

  3. 按回车键选择默认分区编号(通常是 1)。

  4. 按回车键选择默认的起始扇区。

  5. 再次按回车键选择默认的结束扇区(使用整个磁盘)。

  6. 输入 w 写入分区表并退出。

2.2. 步骤 2:格式化分区

假设分区创建成功,系统会生成 /dev/sdb1,接下来对该分区进行格式化:

sudo mkfs.ext4 /dev/sdb1

2.3. 步骤 3:创建挂载点并挂载

创建一个挂载点并挂载分区:

sudo mkdir -p /mnt/usb_array
sudo mount /dev/sdb1 /mnt/usb_array

2.4. 步骤 4:检查挂载是否成功

挂载完成后,可以运行以下命令确认挂载是否成功:

df -h

2.5. 步骤 5(可选):设置开机自动挂载

编辑 /etc/fstab 文件,添加以下行以实现开机自动挂载:

/dev/sdb1    /mnt/usb_array    ext4    defaults    0    2

3. 大硬盘挂载注意事项

fdisk 提示错误信息:DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes,即 DOS(MBR)分区表不支持超过 2TB 的硬盘 。你当前的硬盘大小为 3.64TB,因此需要使用 GPT(GUID Partition Table)分区表

3.1. 解决方案:使用 GPT 分区表

3.1.1. 创建 GPT 分区表

fdisk 提示符下,输入以下命令将分区表改为 GPT:

g

这将切换分区表类型为 GPT。你会看到类似 Created a new GPT disklabel 的提示。

3.1.2. 创建新分区

继续输入以下命令:

n

按以下步骤创建分区:

  • 选择默认分区号(回车)。

  • 起始扇区和结束扇区均按默认值(直接按回车),这样会使用整个磁盘。

3.1.3. 写入分区表并退出

创建完成后,输入以下命令保存更改并退出:

w

3.1.4. 格式化新分区

假设新分区为 /dev/sdb1,格式化为 ext4 文件系统:

sudo mkfs.ext4 /dev/sdb1

3.1.5. 挂载分区

创建挂载点并挂载:

sudo mkdir -p /mnt/usb_array
sudo mount /dev/sdb1 /mnt/usb_array

3.1.6. 检查挂载

运行以下命令检查是否挂载成功:

df -h

4. NTFS 更适合 Debian 吗?

在 Debian 上使用 NTFS 文件系统是可以的,但通常并不推荐作为主要文件系统,除非你有以下需求:

  1. 需要在 Windows 和 Linux 之间共享数据 :NTFS 是 Windows 的原生文件系统,因此如果你计划在 Windows 和 Linux 之间频繁共享这块硬盘的数据,使用 NTFS 是合理的选择。

  2. 不需要复杂的权限管理 :NTFS 在 Linux 上的权限支持较弱,不像 ext4 那样有完整的 Unix 文件权限控制。如果不需要复杂的权限管理(比如这是一个单用户的数据存储硬盘),NTFS 也可以胜任。


4.1. 如何在 Debian 上分区为 NTFS

4.1.1. 创建分区

按照之前的步骤使用 fdisk 创建一个 GPT 分区表并创建新分区,假设新分区为 /dev/sdb1

4.1.2. 格式化为 NTFS

在 Debian 上格式化 NTFS 需要使用 ntfs-3g 工具。如果没有安装,可以先安装:

sudo apt update
sudo apt install ntfs-3g

然后格式化分区为 NTFS:

sudo mkfs.ntfs -f /dev/sdb1

4.1.3. 创建挂载点并挂载

sudo mkdir -p /mnt/usb_array
sudo mount -t ntfs-3g /dev/sdb1 /mnt/usb_array

4.1.4. 检查挂载是否成功

df -h

4.2. 优缺点比较

文件系统 优点 缺点
ext4 性能稳定,支持完整的 Linux 文件权限 不能直接在 Windows 上读写
NTFS 跨平台(Windows 和 Linux)兼容性好 性能略低于 ext4,权限支持有限

4.3. 推荐使用场景

  • 使用 ext4 :如果硬盘只会用于 Linux 系统,ext4 是最佳选择,稳定性和性能都更好。

  • 使用 NTFS :如果硬盘需要经常在 Windows 和 Linux 之间切换,使用 NTFS 更方便,省去了兼容性问题。


5. ext4 分区 可以在 windows 上使用吗

在 Windows 上使用 ext4 文件系统是可以的,但需要借助第三方工具,因为 Windows 不原生支持 ext4 文件系统。


5.1. 方案 1:使用第三方工具访问 ext4 分区

  1. **在 Windows 上使用 ext4 文件系统是可以的,但需要借助第三方工具,因为 Windows 不原生支持 ext4 文件系统。

5.2. 方案 1:使用第三方工具访问 ext4 分区

  1. Ext2Fsd ** (只读/有限写入支持)
  • Ext2Fsd 是一款开源的 Windows 驱动程序,支持 ext2/ext3/ext4 文件系统。

  • 可以在 Windows 上挂载 ext4 分区并访问文件。

  • 注意 :写入支持不完善,可能存在数据损坏风险,因此更适合用于只读场景。

  1. **在 Windows 上使用 ext4 文件系统是可以的,但需要借助第三方工具,因为 Windows 不原生支持 ext4 文件系统。

5.3. 方案 1:使用第三方工具访问 ext4 分区

  1. **在 Windows 上使用 ext4 文件系统是可以的,但需要借助第三方工具,因为 Windows 不原生支持 ext4 文件系统。

5.4. 方案 1:使用第三方工具访问 ext4 分区

  1. Ext2Fsd ** (只读/有限写入支持)
  • Ext2Fsd 是一款开源的 Windows 驱动程序,支持 ext2/ext3/ext4 文件系统。

  • 可以在 Windows 上挂载 ext4 分区并访问文件。

  • 注意 :写入支持不完善,可能存在数据损坏风险,因此更适合用于只读场景。

  1. DiskInternals Linux Reader ** (只读)
  • 这是一款图形界面的工具,支持 ext2/ext3/ext4 文件系统。

  • 只能以只读模式访问 ext4 分区,无法写入,但安全性较高。

  • 适用于从 Linux 硬盘中导出数据。

  1. **在 Windows 上使用 ext4 文件系统是可以的,但需要借助第三方工具,因为 Windows 不原生支持 ext4 文件系统。

5.5. 方案 1:使用第三方工具访问 ext4 分区

  1. **在 Windows 上使用 ext4 文件系统是可以的,但需要借助第三方工具,因为 Windows 不原生支持 ext4 文件系统。

5.6. 方案 1:使用第三方工具访问 ext4 分区

  1. Ext2Fsd ** (只读/有限写入支持)
  • Ext2Fsd 是一款开源的 Windows 驱动程序,支持 ext2/ext3/ext4 文件系统。

  • 可以在 Windows 上挂载 ext4 分区并访问文件。

  • 注意 :写入支持不完善,可能存在数据损坏风险,因此更适合用于只读场景。

  1. **在 Windows 上使用 ext4 文件系统是可以的,但需要借助第三方工具,因为 Windows 不原生支持 ext4 文件系统。

5.7. 方案 1:使用第三方工具访问 ext4 分区

  1. **在 Windows 上使用 ext4 文件系统是可以的,但需要借助第三方工具,因为 Windows 不原生支持 ext4 文件系统。

5.8. 方案 1:使用第三方工具访问 ext4 分区

  1. Ext2Fsd ** (只读/有限写入支持)
  • Ext2Fsd 是一款开源的 Windows 驱动程序,支持 ext2/ext3/ext4 文件系统。

  • 可以在 Windows 上挂载 ext4 分区并访问文件。

  • 注意 :写入支持不完善,可能存在数据损坏风险,因此更适合用于只读场景。

  1. DiskInternals Linux Reader ** (只读)
  • 这是一款图形界面的工具,支持 ext2/ext3/ext4 文件系统。

  • 只能以只读模式访问 ext4 分区,无法写入,但安全性较高。

  • 适用于从 Linux 硬盘中导出数据。

  1. Paragon ExtFS for Windows ** (读写支持,商业软件)
  • Paragon ExtFS 是一款专业工具,提供对 ext2/ext3/ext4 分区的完全读写支持。

  • 性能和稳定性较好,但需要购买商业许可。

  • 如果你经常需要在 Windows 和 Linux 之间切换,并且对数据写入有较高需求,这可能是最好的选择。


5.9. 方案 2:使用虚拟机或 WSL(Windows Subsystem for Linux)

  1. 虚拟机 :通过在 Windows 上运行 Linux 虚拟机(如 VirtualBox、VMware)来访问 ext4 硬盘分区。

  2. WSL 2 :Windows Subsystem for Linux 2 支持挂载 ext4 文件系统,不过需要执行一些命令,并且性能可能会略差于原生支持。


5.10. 方案 3:创建一个共享分区(NTFS 或 FAT32)

  • 如果你需要频繁在 Windows 和 Linux 间共享文件,可以考虑在硬盘上划分一个 NTFS 或 FAT32 分区,专门用于跨平台数据交换。

  • NTFS :支持大文件,适合大容量硬盘。

  • FAT32 :更兼容旧系统,但单个文件最大只支持 4GB。


5.11. 结论

  • 如果你主要在 Linux 上使用,且偶尔需要在 Windows 上读取数据,推荐 ext4 + DiskInternals Linux ReaderExt2Fsd

  • 如果需要频繁在两者间切换并读写,推荐使用 NTFS 或使用 Paragon ExtFS

  • 另一种更安全的方式是使用一个专门的 NTFS 分区 作为共享区域,这样能避免因文件系统兼容性问题导致的数据损坏风险。

6. 挂载步骤

上面已经将硬盘完成分区,现在就要执行具体的挂载步骤了。执行 lsblk 可以看到:
/dev/sdb1 已经成功格式化为 ext4 文件系统,但 lsblk 没有显示其大小和挂载点。这通常是因为分区还没有挂载,所以没有显示使用和可用空间信息。

6.1. 解决方法

6.1.1. 手动挂载分区

运行以下命令创建挂载点并挂载分区:

sudo mkdir -p /mnt/usb_array
sudo mount /dev/sdb1 /mnt/usb_array

6.1.2. 检查挂载状态

挂载完成后,运行以下命令查看挂载状态和分区的大小信息:

df -h

这会显示所有挂载分区的大小、使用情况和挂载点。
3. 更新 lsblk 信息再次运行 lsblk,应该可以看到 /dev/sdb1 的大小和挂载点了:

lsblk -f

6.2. 如果仍然没有显示大小

如果挂载后仍然没有显示大小,可能是文件系统未正确创建,可以尝试使用 fsck 检查并修复文件系统:

sudo fsck /dev/sdb1

7. 自动挂载

我选择通过编辑 /etc/fstab 文件实现开机自动挂载分区。以下是详细步骤:


7.1. 步骤 1:获取分区的 UUID

运行以下命令,获取 /dev/sdb1 的 UUID:

blkid /dev/sdb1

你会看到类似这样的输出:

/dev/sdb1: UUID="cc7f6ac-2a6d-4a9e-893f-b676905b8845" TYPE="ext4"

记录下 UUID,稍后会用到。


7.2. 步骤 2:创建挂载点

创建你想要的挂载点 /media/peng/PT/downloads/PT

sudo mkdir -p /media/peng/PT/downloads/PT

步骤 3:编辑 /etc/fstab 使用编辑器打开 /etc/fstab 文件:

sudo nano /etc/fstab

在文件末尾添加以下一行:

UUID=cc7f6ac-2a6d-4a9e-893f-b676905b8845 /media/peng/PT/downloads/PT ext4 defaults 0 2

UUID=cc7f6ac-2a6d-4a9e-893f-b676905b8845:这是分区的 UUID,确保与你运行 blkid 时显示的 UUID 一致。/media/peng/PT/downloads/PT:这是挂载点。ext4:分区的文件系统类型。defaults:挂载选项,表示使用默认挂载设置。0:是否需要 dump,通常为 0 表示不需要。2fsck 的检查顺序,根分区通常为 1,其他分区为 2。


7.3. 步骤 4:测试挂载

运行以下命令测试挂载是否正常:

sudo mount -a

如果没有报错,说明挂载配置正确。


7.4. 步骤 5:验证挂载是否成功

运行以下命令查看挂载情况:

df -h

你应该可以看到 /dev/sdb1 已经挂载到 /media/peng/PT/downloads/PT


7.5. 备注

  • 如果 /etc/fstab 配置有问题,系统在开机时可能无法正常启动。为防止这种情况,可以在配置 /etc/fstab 之前进行备份:
sudo cp /etc/fstab /etc/fstab.bak
  • 如果修改后开机无法启动,可以通过进入 恢复模式 或使用 Live CD 修复 /etc/fstab 文件。

如果你在操作中遇到任何问题,随时告诉我!

8. 硬盘根目录的 lost+found 是什么

关于 lost+found 文件夹 lost+found 是 ext 文件系统(如 ext2、ext3、ext4)自动创建的特殊目录,用于存放被 fsck 工具修复时找到的文件碎片。当文件系统崩溃或损坏时,fsck 可能会将修复的、无法关联到目录结构的文件放入这个 lost+found 目录中,供用户手动检查和恢复。
这个目录只有在 ext 文件系统的根目录(挂载点)下存在,并且是系统自动创建的。


**关于 lost+found 文件夹 lost+found 是 ext 文件系统(如 ext2、ext3、ext4)自动创建的特殊目录,用于存放被 fsck 工具修复时找到的文件碎片。当文件系统崩溃或损坏时,fsck 可能会将修复的、无法关联到目录结构的文件放入这个 lost+found 目录中,供用户手动检查和恢复。
这个目录只有在 ext 文件系统的根目录(挂载点)下存在,并且是系统自动创建的。


是否可以删除或隐藏 lost+found?**

  1. 删除 lost+found
    不建议删除 lost+found,因为它是 ext 文件系统的一部分,在某些情况下(如文件系统错误修复)是必要的。如果你强行删除,文件系统可能在修复时出问题,或者修复后的文件无法找到。

  2. 隐藏 lost+found
    虽然不能真正“隐藏”它,但你可以通过以下方法使其在文件管理器或 ls 命令中不显示:

  • 使用别名屏蔽 lost+found
    你可以创建一个别名,在使用 ls 命令时忽略 lost+found
alias ls='ls --ignore=lost+found'

如果希望永久生效,可以将这行添加到 ~/.bashrc 文件中。

  • 更改显示方式(文件管理器)
    在一些图形化文件管理器中,可以设置不显示系统目录或特定文件夹。

总结 lost+found 是 ext 文件系统的一个重要目录,删除可能会导致文件系统修复功能失效。因此,不建议删除 ,但你可以通过修改 ls 命令或文件管理器设置来忽略它的显示。如果你不想看到它,并且不需要 ext 的这些功能,可以考虑换成 NTFS 或其他不创建 lost+found 目录的文件系统。


Comment