AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1723471
Accepted
First User
First User
Asked: 2022-05-29 04:58:43 +0800 CST2022-05-29 04:58:43 +0800 CST 2022-05-29 04:58:43 +0800 CST

对现有分区进行分区以安装操作系统?

  • 772

我正在尝试安装多个操作系统作为实验:我的磁盘已经分区为 5 个分区,如下所示:

在此处输入图像描述

分区 2 包含 Linux mint 安装,而分区 3 包含 Windows 操作系统,分区 4 包含数据。

我希望使用分区 5:(/dev/nvme0n1p5大小 = 50 GB,红色箭头)来安装 Arch Linux,根据我之前在具有单个分区的磁盘上的经验,通常使用以下 4 个分区完成:

  1. EFI 分区(我正在使用带有 gpt 分区方案的 uefi bios)(大小 = 512 MB)
  2. 根分区(大小 = 15 GB)
  3. 主分区(大小 = 32.5 GB)
  4. 交换分区(大小 = 2 GB)

fdisk因此,我使用分区 5 上的实用程序在实时 Arch Linux 环境中尝试了上述设置: /dev/nvme0n1p5. 当我在 中打印p分区表fdisk时,得到以下结果(我在解释,因为我无法在实时环境中截图):

Partition           Size       Type
/dev/nvme0n1p5p1    512 MiB    Linux Filesystem
/dev/nvme0n1p5p2    15 GiB     Linux Filesystem
/dev/nvme0n1p5p3    32.5 GiB   Linux Filesystem
/dev/nvme0n1p5p4    2 GiB      Linux Filesystem

然而,在写作时,fdisk失败并出现错误(我再次解释):“无效的参数。内核需要在重新启动时重新读取分区表”并建议使用partprobeor partx(我尝试过但没有帮助)。

从下面的消息中可以明显看出,我肯定损坏了分区:

在此处输入图像描述

我应该怎么做才能修复这个分区,然后,我现在可以做些什么来将 Arch Linux 安装到这个分区上,上面提到的 4 个分区?

linux hard-drive
  • 2 2 个回答
  • 243 Views

2 个回答

  • Voted
  1. Best Answer
    SwiftD
    2022-05-29T06:51:24+08:002022-05-29T06:51:24+08:00

    以下是我的理解(有些细节可能有点不对)

    问题 1)您在分区而不是磁盘上使用 fdisk。因此,fdisk 似乎已经为您破坏了该分区上的文件系统。

    /dev/nvme0n1p5是分区/dev/nvme0n1是磁盘(我相信/dev/nvme0是控制器,但我们不在乎)

    问题 2)我很确定每个磁盘只能有一个 efi 分区,它必须位于磁盘的开头并采用 fat32 格式 [编辑/更正:您可以在一个磁盘上有多个 efi 分区,但仍然没有推荐的]。您可能希望使用现有的 efi 分区(您仍然可以设置引导优先级...如果您正确设置了所有内容(安装到 /boot/efi),grub 应该为您处理 efi 设置,而不会影响您的其他安装。

    你有两种前进的方式:

    选项 1 (恕我直言,现有分区的风险更大) - 您可以使用诸如parted缩小第 5 个分区之类的工具,然后在未使用的空间中创建更多分区......这会在磁盘空间中产生一些开销,并且您正在运行一个非常紧张的船是......此外,一旦这些分区上有数据,调整这些分区的大小将是一件痛苦的事情。

    选项 2 (推荐),只需在分区 5 上重新制作文件系统,然后将子卷用于 root、swap 和 home(以及您需要的任何其他内容)

    我建议将分区 5 格式化为 btrfs(所有命令可能都需要 sudo): mkfs.btrfs -f /dev/nvme0n1p5

    然后使用 btrfs 创建子卷(ext4/lvm 是您可以查看的替代方案):

    挂载你的分区:

    mkdir /mnt/brtfs

    mount /dev/nvme0n1p5 /mnt/btrfs

    然后创建子卷:

    btrfs subvolume create /mnt/btrfs/@为 root 创建一个新的挂载

    btrfs subvolume create /mnt/btrfs/@swap交换

    btrfs subvolume create /mnt/btrfs/@home家用

    警告:不要在 btrfs 分区的根目录中存储子卷以外的任何内容

    注意:这@只是提醒您它的子卷的约定-您可以随意称呼它们,但这样做会提醒您不要违反上述黄金法则

    根据您的设置,您可能需要卸载根 btrfs 分区并重新安装以在文件系统中正确嵌套卷,但对于您的设置,您应该能够将 efi 分区安装在 /mnt/btrfs/@/boot/efi 并从那里(最后看到交换)

    安装基本系统后,您可以设置新的 fstab 以引用这些卷,如下所示:

    UUID=782d3829-b893-283h-ade9-d9a34da2084682 /boot/efi      vfat    umask=0077 0 2
    UUID=346b428-b632-440f-abc3-a3dcefs12379983 /              btrfs   subvol=/@,defaults,noatime,compress=zstd,discard=async,ss
    d 0 0
    UUID=346b428-b632-440f-abc3-a3dcefs12379983 /home          btrfs   subvol=/@home,defaults,noatime,compress=zstd,discard=asyn
    c,ssd 0 0
    

    您还需要一个交换条目 - 请参见此处以获取示例https://askubuntu.com/questions/1206157/can-i-have-a-swapfile-on-btrfs

    • 1
  2. Nikita Kipriyanov
    2022-05-29T08:34:00+08:002022-05-29T08:34:00+08:00

    要在 Linux 中使用任何设备,您需要相应的设备节点(特殊的文件系统对象,部分看起来像文件)。在发现过程中,内核解析新找到的设备上的分区表并调用udev在其中创建相应的设备节点/dev(过去,系统管理员管理静态/dev并手动创建这些节点)。

    问题是,它只在基本设备上解析一次分区表。它不期望在发现的分区中有任何类似的结构,也不解析它们。通过“对分区进行分区”,您可以创建必要的结构,但这些结构不适合任何人。你正在做的事情根本行不通,我想它永远行不通,因为实际上没有人需要它。

    (我也怀疑是否可以手动为“子分区”创建任何节点,因为没有这样的主要/次要对被内核解释为“分区内的分区”。)

    它们的用途仍然有限;我想到的一件事是,您可以将分区转发到虚拟机中,在那里它将被视为整个磁盘,因此 VM 中的操作系统将解释此结构。

    所以,你问的问题是没有意义的。但是您似乎在磁盘上使用 GPT,它允许多达 128 个分区。这已经足够了。不要犹豫,只需在基本设备上创建额外的分区:fdisk /dev/nvme0n1.

    此外,您不需要创建额外的 ESP。你可以,但它不会被使用。您已经有一个,在磁盘的开头,/dev/nvme0n1p1.

    • 1

相关问题

  • 对于 cp 或 mv,是否有等同于 cd - 的东西?

  • 以 root 身份运行 docker 容器

  • “写悬崖”现象是否只发生在SSD盘上?

  • 如何在域和 Linux 活动目录中启用指纹传感器

  • 如何在CentOS 7 中将Ctrl+C 永久更改为Ctrl+K?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve