admin 管理员组

文章数量: 887192

安装系统用U盘是很方便的,无奈我的U盘莫名奇妙的坏了。因为疫情影响,买个U盘要挺久时间才能到达。所以我就想能不能使用硬盘来安装linux系统呢。试试吧!

相关阅读

  1. 《没有U盘纯硬盘安装linux之Ubuntu22.04》
    https://blog.csdn/lxyoucan/article/details/124506518
  2. 《没有U盘纯硬盘安装linux之Archlinux》
    https://blog.csdn/lxyoucan/article/details/124519765
  3. 《没有U盘纯硬盘安装linux之manjaro》
    https://blog.csdn/lxyoucan/article/details/124541834

环境

正在运行的是Windows 11,想要安装的linux是:ubuntu 22.04

准备工作

下载iso

https://ubuntu/#download
我把下载好的iso文件放到了E盘(FAT32格式),这个E盘就去专门分出来的一个小分区来做测试使用的。因为我尝试在NTFS格式上使用,发现运行报错,大概意思是不支持此文件系统。我尝试了这个解决办法,没有成功。
https://help.ubuntu/community/Grub2/ISOBoot

路径如下:

E:\ubuntu-22.04-desktop-amd64.iso

对应的diskpart的分区位置是 disk 0 partion 5上

window下挂载uefi分区

方法有多种,图形化的软件DISKGENIUS,直接指派新的驱动器号即可。

命令行的方式如下 :

cmd中运行

diskpart
操作命令如下:
```bash

#查磁盘列表
list disk
#选择磁盘
select disk 0
#查分区列表
list partition
# 选择 UEFI分区 一般位于第一个300MB左右的分区
select partition 1
# 分配盘符H
assign letter=H
exit


全部执行结果如下 :

Microsoft DiskPart 版本 10.0.22000.1

Copyright (C) Microsoft Corporation.
在计算机上: VIVOBOOK-ITKEY

DISKPART> list disk

  磁盘 ###  状态           大小     可用     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  磁盘 0    联机              476 GB      0 B        *

DISKPART> select disk 0

磁盘 0 现在是所选磁盘。
DISKPART> list partition

  分区 ###       类型              大小     偏移量
  -------------  ----------------  -------  -------
  分区      1    系统                 360 MB  1024 KB
  分区      2    已保留                128 MB   361 MB
  分区      3    主要                 100 GB   489 MB
  分区      4    主要                 200 GB   100 GB
  分区      5    主要                 176 GB   300 GB

DISKPART> select partition 1

分区 1 现在是所选分区。
DISKPART> assign letter=H

DiskPart 成功地分配了驱动器号或装载点。

在资源管理器里面已经看到 EFI的分区对应的盘了。 不过要想访问里面的内容,需要有 管理员权限才行, 可以在以管理员身份运行的命令提示符窗口,然后运行notepad点击打开就可以操作文件夹了。


执行以下命令

 notepad


这样就可以编辑EFI 分区了。除了notepad也可以使用VSCODE,其实我更喜欢使用VSCODE更方便。

解压iso

把iso解压出来的boot目录复制到EFI的根目录去。


大概的目录结构如下 :

tree
文件夹 PATH 列表
卷序列号为 947D-3FF9
H:.
├─EFI
│  ├─ubuntu
│  ├─Microsoft
│  └─Boot
│      └─boot
└─boot
    └─grub
        ├─fonts
        ├─i386-pc
        └─x86_64-efi

编辑H:\boot\grub\grub.cfg
增加以下:

menuentry "Ubuntu 20.04 ISO" {
   set isofile="/ubuntu-22.04-desktop-amd64.iso"
   # or set isofile="/<username>/Downloads/ubuntu-20.04-desktop-amd64.iso"
   # if you use a single partition for your $HOME
   rmmod tpm
   loopback loop (hd0,gpt5)$isofile
   linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
   initrd (loop)/casper/initrd
}

其中(hd0,gpt5)是磁盘分区的位置,这里可能需要修改。

这里还要说明一下,你可能要手动安装一下Grub2因为我之前安装过Ubuntu当时就自动安装了Grub2了,所以就没有机会手动安装Grub2。
手动安装我猜测只要把ISO文件中解压出来的以下两个文件COPY到EFI分区即可(理论上这样,我没有测试过)。

这样重新启动电脑,进入Grub2的菜单,选Ubuntu 20.04 ISO就可以进入安装光盘了。

我通过这个方式成功的安装了ubuntu22.04到电脑上了。不仅省了U盘的钱,还练了一下技术。

为了给大家参考,我把我的EFI打包分享一下。
https://download.csdn/download/lxyoucan/85245431
补充:
如果使用archlinux的iso

测试代码:

menuentry 'archlinux' {
    insmod ntfs
    insmod iso9660
     set isofile="/archlinux-2022.04.05-x86_64.iso"
     search --set -f $isofile
     loopback loop (hd0,gpt5)$isofile
     linux (loop)/arch/boot/x86_64/vmlinuz-linux archisolabel=ARCH_202204
     initrd (loop)/arch/boot/x86_64/initramfs-linux.img
}

这个是可以启动的但是会报个错,解决办法。我另起一篇教程讲一下。

参考

https://wwwblogs/sztom/p/10292522.html

https://gmd20.github.io/blog/%E8%81%94%E6%83%B3%E7%AC%94%E8%AE%B0%E6%9C%ACwindows10%E4%BD%BF%E7%94%A8UEFI%E5%90%AF%E5%8A%A8%E5%BC%95%E5%AF%BCNTFS%E7%A1%AC%E7%9B%98%E4%B8%8A%E7%9A%84ISO%E5%85%89%E7%9B%98%E5%AE%89%E8%A3%85Ubuntu%E5%8F%8C%E7%B3%BB%E7%BB%9F/

https://help.ubuntu/community/Grub2/ISOBoot

https://wiki.archlinux/title/GRUB_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

https://www.bilibili/read/cv11375091

本文标签: 硬盘 Linux