在 NTFS 分区上安装 Ubuntu

Oxw*_*ivi 19 installation ntfs

Ubuntu 安装程序不允许我在 NTFS 分区上安装,但某些情况需要我这样做。是否可以?

Flo*_*sch 13

不可以。NTFS 不支持 Linux 文件权限,因此您不能在其上安装 Linux 系统。

  • 也没有丑陋的黑客? (4认同)

Kon*_* Ho 13

可以在 NTFS 分区上安装 Ubuntu。

图像创建

您需要在 NTFS 分区上创建一个映像文件。尝试启动您的 Ubuntu Live CD,启动终端,将目录更改为您的 NTFS 分区,并创建一个映像文件:

cd /media/ubuntu/<your_ntfs_partition>/
mkdir linux
cd linux/
dd if=/dev/zero of=./linux.img bs=1M count=32768
mkfs.ext4 ./linux.img
Run Code Online (Sandbox Code Playgroud)

这将创建一个大小为 32GB 的图像文件,其中 EXT4 位于 linux/linux.img

环回文件系统设置

现在,在创建一个虚拟块设备/dev/sdX,其中X是一个非占用块设备字符(即我/dev/sda,所以我用/dev/sdb);

还要选择一个200未与 一起使用的次要号码(在本例中为)ls -al /dev

sudo mknod /dev/sdb b 7 200
sudo losetup /dev/sdb ./linux.img
Run Code Online (Sandbox Code Playgroud)

安装 Ubuntu

您现在可以启动 Ubuntu 安装程序并在 上安装 Ubuntu /dev/sdX如果您没有在该磁盘上安装 Windows,请确保已将引导加载程序安装到您的真实磁盘(或 EFI 分区)。安装完成后,需要通过挂载镜像获取内核和initrd文件名:

sudo mkdir /media/ubuntu/rfs
sudo mount -o loop /dev/sdb /media/ubuntu/rfs
ls -al /media/ubuntu/rfs/boot
Run Code Online (Sandbox Code Playgroud)

记下内核和 initrd 文件名,在我的例子中是vmlinuz-4.4.0-31-generic, 和initrd.img-4.4.0-31-generic.

引导加载程序

我的 NTFS 分区上有一个 Windows,所以我选择Grub2Win作为我的引导程序。但是,如果您没有安装 Windows 并坚持使用 NTFS 分区(尽管这样做没有意义),则 GRUB 应该在上一步中安装在您的磁盘上。无论您使用 Grub2Win 还是原始 GRUB,您都需要编辑您的 GRUB 配置并使用以下内容:

echo Booting linux...

loopback loop0 (hd0,1)/linux/linux.img
set root=(loop0)
linux /boot/vmlinuz-4.4.0-31-generic root=/dev/sda1 loop=/linux/linux.img rw verbose nosplash
initrd /boot/initrd.img-4.4.0-31-generic
Run Code Online (Sandbox Code Playgroud)

您需要编辑(hd0,1)/dev/sda1对NTFS分区,你的Linux映像所在。你可以使用GRUB命令行来得到它。还要根据您的安装修改内核和 initrd 文件名。确保您的 GRUB 具有 NTFS 和环回支持。

现在,当您启动磁盘时,您可以使用 GRUB 启动到 Ubuntu。我已经将我的步骤和过程写到了这里,但正如我之前提到的,我正在使用 Grub2Win。

  • 请不要仅仅为了参考另一个问题而写答案。当您有足够的声誉时,可以使用评论来完成,或者在适当的情况下标记为重复 (2认同)

Rol*_*Xor 5

我不确定您的“某些情况”是什么,但是您最好调整分区大小并让 Ubuntu 拥有自己的空间。您以后可以随时调整/移动 Ubuntu 分区的大小。

出于安全、技术和其他原因(例如,用户空间驱动程序支持 NTFS),您不能在 NTFS 系统上安装 Linux。