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
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1543179
Accepted
Jurakin
Jurakin
Asked: 2025-03-08 02:51:30 +0800 CST2025-03-08 02:51:30 +0800 CST 2025-03-08 02:51:30 +0800 CST

使用自定义加密根和交换分区安装 Ubuntu

  • 772

我想使用自定义分区设置安装 Ubuntu 22.04 LTS,包括一个加密的根分区和一个 8 GiB 的交换分区。默认的 Ubuntu 安装程序不允许我设置自定义交换大小。我该怎么做才能实现这一点?

partitioning
  • 1 1 个回答
  • 36 Views

1 个回答

  • Voted
  1. Best Answer
    Jurakin
    2025-03-08T02:51:30+08:002025-03-08T02:51:30+08:00

    目前,Ubuntu 安装程序无法执行此操作。您需要在终端中准备分区,然后继续安装。

    完成本教程后,结果lsblk应如下所示:

    NAME                MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
    sda                   8:0    0 238.5G  0 disk  
    ├─sda1                8:1    0   512M  0 part  /boot/efi
    ├─sda2                8:2    0     1G  0 part  /boot
    └─sda3                8:3    0   237G  0 part  
      └─crypt           252:0    0   237G  0 crypt 
        ├─vgubuntu-root 252:1    0   221G  0 lvm   /
        └─vgubuntu-swap 252:2    0    16G  0 lvm   [SWAP]
    

    安装步骤

    重要提示:在继续操作之前,请注意这些步骤将格式化您的驱动器。请确保您已备份驱动器上的所有重要数据。

    1. 启动实时 USB,单击“尝试 Ubuntu”。

    2. 确定您要安装 Ubuntu 的驱动器。使用gparted、fdisk或lsblk。我将在此答案中假设它是/dev/sda,但请确保您使用系统的正确路径。

    3. 在终端内输入sudo su,这样您不必sudo在每个命令前都输入。

    4. 擦除驱动器并创建新的 GPT 分区表。

      wipefs -a /dev/sda
      parted /dev/sda mklabel gpt
      
    5. /boot/efi从 1 MiB 开始,创建一个大小为 512 MiB 的新可启动分区。

      parted /dev/sda mkpart ESP fat32 1MiB 513MiB
      parted /dev/sda set 1 esp on
      mkfs.fat -F32 /dev/sda1
      
    6. 创建一个/boot大小为 1024 MiB 的新分区。虽然确切的大小并不重要,但如果您决定更改它,请确保分区的起点和终点正确对齐。

      parted /dev/sda mkpart primary ext4 513MiB 1537MiB
      mkfs.ext4 /dev/sda2
      
    7. 使用驱动器上剩余的未分配空间创建主分区。

      parted /dev/sda mkpart primary ext4 1537MiB 100%
      

      使用 LUKS 加密格式化主分区。如果您的驱动器支持,您可以将扇区大小设置为 4096 以提高性能(使用 检查hdparm -I /dev/sda | grep "Sector size")。

      cryptsetup luksFormat --sector-size=4096 /dev/sda3
      
    8. 在主分区上创建 LVM。您可以选择任何您喜欢的名称来代替 crypt,但请确保在以下步骤中相应地更新路径。

      cryptsetup open /dev/sda3 crypt
      pvcreate /dev/mapper/crypt
      lvcreate vgubuntu /dev/mapper/crypt
      
    9. 现在,创建根分区并根据需要进行交换。我更喜欢将交换分区放在磁盘的末尾。

      首先创建根分区以填充整个可用空间,然后减小其大小以便为交换分区分配空间。

       lvcreate -l 100%FREE -n root vgubuntu
       mkfs.ext4 /dev/vgubuntu/root
      

      然后,缩小其大小以便为交换分区腾出空间。

       lvresize --resizefs -L -8G /dev/vgubuntu/root
       lvcreate -L 8G -n swap vgubuntu
       mkswap /dev/vgubuntu/swap
      
    10. 如果您到目前为止没有任何问题,那么您现在可以运行以下命令来授予安装程序的访问权限:

      vgscan --mknodes
      vgchange -ay
      swapoff -a
      
    11. 现在,您可以运行安装程序。当系统询问时Installation type,请选择Something else选项。您必须为创建的分区设置挂载点。不要格式化/dev/sda3,因为如果您格式化,您将不得不重新开始。

      • /dev/sda1-> /boot/efi(类型:efi,用于引导加载程序安装的设备)
      • /dev/sda2-> /boot(类型:ext4,格式:是)
      • /dev/vgubuntu/root-> /(类型:ext4,格式:是)

      它看起来应该是这样的:

      自定义分区窗口的前半部分 自定义分区窗口的后半部分

    12. 安装完成后,您必须设置主分区的 UUID,以便系统识别它。

      mount /dev/vgubuntu/root /mnt
      mount /dev/sda2 /mnt/boot
      mount /dev/sda1 /mnt/boot/efi
      mount --bind /dev /mnt/dev
      mount --bind /proc /mnt/proc
      mount --bind /sys /mnt/sys
      chroot /mnt
      

      在 chroot 内部注册分区 UUID 并更新 initramfs。

      echo "crypt UUID=$(blkid -s UUID -o value /dev/sda3) none luks,discard" | tee -a /etc/crypttab
      update-initramfs -u
      exit
      

      如果一切顺利,没有错误,那么一切就都完成了。

      umount -R /mnt
      sudo reboot
      
    • 0

相关问题

  • 是否有更好的方式为 /home/userX 构建分区/挂载

  • Linux 文件系统层次结构中的默认目录是什么意思?

  • 如何将 /usr 移动到新分区?

  • 如何从双启动计算机访问加密的主文件夹?

  • 您对台式机和家庭服务器的驱动器分区方案有什么建议?[关闭]

Sidebar

Stats

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

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve