mac m1通过qemu和grub制作操作系统引导盘

这篇具有很好参考价值的文章主要介绍了mac m1通过qemu和grub制作操作系统引导盘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

我电脑是mac m1芯片的,做了如下尝试,最终在第4种方式下成功:

  1. 开始用了parallels desktop安装了ubuntu 22版本的,因为本机是arm64芯片,所以只能安装arm64的ubuntu,然后在运行grub-install /dev/loop0时报错:grub-install: error: cannot find EFI directory,并且它只能安装arm64的efi
  2. 如果是ubutnu16.04版本会报:
  3. 我用qemu安装了x86_64架构的centos7上使用了grub2-install /dev/loop0时报错:embedding is not possible, but this is required for cross-disk install
  4. 最终我用qemu安装了x86_64架构的ubutnu18.04,mac电脑可以使用brew install qemu安装qemu,然后跑了如下命令成功了

grub安装引导盘

sudo dd if=/dev/zero of=hd.img bs=1M count=20

sudo losetup /dev/loop0 hd.img


sudo mkfs.ext4 -q /dev/loop0  

mkdir hdisk

sudo mount -o loop ./hd.img ./hdisk/
sudo mkdir ./hdisk/boot/

sudo grub-install --boot-directory=./hdisk/boot/ --force --allow-floppy /dev/loop0

/hdisk/boot/grub/ 目录下建立一个 grub.cfg 文本文件

menuentry 'Cosmos' {
insmod part_msdos
insmod ext2
set root='hd0' 
multiboot2 /boot/Cosmos.eki 
boot 
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

可使用如下2种方式运行

qemu-system-i386 -m 1024 -drive format=raw,file=hd.img

# 64位系统的命令
qemu-system-x86_64 -m 1024 -drive format=raw,file=hd.img
qemu-img convert -O qcow2 hd.img qemu-grub.img
qemu-system-x86_64 -hda ./qemu-grub.img

最终效果
mac m1通过qemu和grub制作操作系统引导盘,深入学习操作系统,macos,数据库
mac m1通过qemu和grub制作操作系统引导盘,深入学习操作系统,macos,数据库

FAQ

  1. 【挂载/dev/loop0时可能遇到device busy】可以使用losetup -f查看一个空闲的使用,如果一个回环设备都没有,可以使用sudo mknod /dev/loop0 b 7 200传建回环设备
  2. 【grub-install: warning: File system `ext2’ doesn’t support embedding.
    grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged…
    Installation finished. No error reported.】遇到警告可以忽略
  3. 【grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn’t exist】我开始用的arm64的ubuntu,它不支持x86系列的,所以需要安装一个x86的操作系统来进行grub
  4. 【cannot remove ‘hdisk/’: Device or resource busy】可以使用umount hdisk卸载卸载,再rm -rf hdisk/
  5. 【/dev/loop0: failed to set up loop device: No such file or directory】创建设备 mknod /dev/loop0 b 7 200
  6. 【losetup: hd. img: failed to set up loop device: No such file or directory】hd.img不存在
  7. 【embedding is not possible, but this is required for cross-disk install】1.第一种是把相关的img和loop设备都rm -rf 删除掉以及umount掉,然后重启机器;2.第二种是新建loop1,新建新的img;3. 将ubutnu16.04版本换成ubutnu18.04

参考

制作一个grub虚拟启动盘,在qemu下调试
重点ubuntu arm环境下grub启动镜像制作
fdisk 命令实现磁盘分区详细教程
Grub这篇文章可以看看
linux安装网络
各操作系统安装grub程序
qemu 安装CentOS

附录

qemu安装ubuntu

qemu-system-x86_64 -m 2048 -hda UbuntuOS.img -cdrom ./ubuntu-18.04.6-live-server-amd64.iso -boot d

然后

qemu-system-x86_64 -m 2048 -hda UbuntuOS.img  -boot c -device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp::5555-:22

GRUB安装到回环设备

在Linux系统中,可以使用以下命令将GRUB安装到回环设备:

  1. 首先,使用以下命令创建一个空的磁盘映像文件:

    dd if=/dev/zero of=grub.img bs=1M count=100
    

    这将创建一个名为grub.img的100MB空映像文件。

  2. 使用losetup命令将映像文件关联到一个回环设备:

    losetup /dev/loop0 grub.img
    

    这将将grub.img文件关联到/dev/loop0回环设备。

  3. 使用fdiskparted等工具将回环设备分区,并格式化分区:

    fdisk /dev/loop0
    mkfs.ext4 /dev/loop0p1
    

    这将在/dev/loop0上创建一个分区,并使用ext4文件系统格式化该分区。

  4. 挂载分区:

    mount /dev/loop0p1 /mnt
    

    这将在/mnt目录下挂载/dev/loop0p1分区。

  5. 使用grub-install命令将GRUB安装到回环设备的MBR(Master Boot Record):

    grub-install --target=i386-pc --root-directory=/mnt /dev/loop0
    

    这将将GRUB安装到/dev/loop0回环设备的MBR。

  6. 卸载分区并取消回环设备的关联:

    umount /mnt
    losetup -d /dev/loop0
    

    这将卸载/mnt目录下的分区,并取消grub.img文件与/dev/loop0回环设备的关联。

现在,grub.img文件就可以作为一个可引导的设备使用了。文章来源地址https://www.toymoban.com/news/detail-527839.html

吧啦吧啦…

  1. rm -rf 以及grub-install -/dev/sda这2个命令不要随便乱搞,弄错了系统就崩了
  2. qemu-system-aarch64 -M virt -m 1024 -drive format=raw,file=grub.img 这是启动arm64架构的,但不好使~

到了这里,关于mac m1通过qemu和grub制作操作系统引导盘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 麒麟操作系统缓存rpm包,制作离线yum源

    yum repolist all

    2024年01月22日
    浏览(43)
  • Mac 操作系统版本简史,让我们回到过去

    几十年来,苹果一直在电脑领域不断发展创新,从 1984 年的第一个图形用户界面到 macOS Monterey,Mac 操作系统的历史漫长而多变。当我们按顺序重新访问每个 Mac 操作系统版本时,可以回到过去。 Apple I,Apple 的第一台计算机,实际上并没有操作系统,它可以将程序保存到盒式

    2024年02月12日
    浏览(44)
  • Mac操作系统上设置和配置PPPoE连接

    嗨,在使用Mac的小伙伴么!你是否在Mac操作系统上尝试设置和配置PPPoE连接,却不知道怎么设置?别担心,今天我将为你一步步教你如何在Mac上进行设置和配置。无论你是新手还是有经验的用户,本文都将帮助你轻松完成PPPoE连接的设置! 1. 打开网络偏好设置 首先,点击屏幕

    2024年02月11日
    浏览(40)
  • windows虚拟机安装Mac OS系统(操作图解)

    因为工作需要学习ios开发,但是苹果电脑申请了还没审批下来所以想着先搭建一个虚拟机来熟悉开发环境 安装环境 windows,vmware 16 Pro 一、准备工作         1.  vmware 16 Pro 下载          2. unlocker  下载地址,选择zip下载          3. macos12.6 (链接:https://pan.baidu

    2024年02月16日
    浏览(46)
  • Mac操作系统Safari 17全新升级:秋季推出全部特性

    苹果的内置浏览器可能是Mac上最常用的应用程序(是的,甚至比Finder、超级Mac Geeks还要多)。因此,苹果总是为其浏览器Safari添加有用的新功能。在今年秋天与macOS Sonoma一起推出的第17版中,Safari可以帮助你提高工作效率和安全性,适用于macOS Monterey、Ventura和即将推出的Sono

    2024年02月11日
    浏览(50)
  • mac操作系统 java 调用tdengine时序数据库

    sudo ln -s /usr/local/lib/libtaos.1.dylib /Users/ admin /Library/Java/Extensions/libtaos.1.dylib admin 为你自己用户目录 即可正常使用

    2024年02月12日
    浏览(56)
  • Chrome浏览器如何实现多开操作?(Mac系统为例)

    一切不以解决问题为目的的小技巧都是耍流氓。 在测试过程中,有时间需要验证多个账户登陆的情况,大部分情况下都需要一台电脑上打开多个浏览器,但是如果想都使用Chrome浏览器怎么办呢? 大部分的伙伴都是打开一个隐私窗口,但是隐私窗口很多功能是无法使用的,比

    2024年02月04日
    浏览(46)
  • 【linux深入剖析】操作系统与用户之间的接口:自定义简易shell制作全过程

    🍁你好,我是 RO-BERRY 📗 致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 Linux的Shell是一种命令行解释器,它是用户与操作系统内核之间的接口。 通过Shell,用户可以输入命令并与

    2024年03月18日
    浏览(56)
  • 物理服务器通过U盘安装CentOS 7操作系统

    1、使用UltraISO工具打开需要安装的操作系统iso镜像文件(我安装的是CentOS-7-x86_64-Minimal-2009.iso),如下图所示 镜像下载地址:centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿里云 2、将该系统镜像写入u盘,如下图所示     1、具体报错如下: 2、修改U盘卷标名称,如“CENTOS7”

    2023年04月20日
    浏览(39)
  • 【兼容认证】白鲸开源与银河麒麟高级服务器操作系统成功通过测试

    2024年1月2日 ,北京白鲸开源科技有限公司(以下简称\\\"白鲸开源\\\")荣幸宣布,白鲸开源旗下产品 WhaleStudio V2.4 已成功通过与麒麟软件有限公司旗下的银河麒麟高级服务器操作系统产品的兼容性测试。 麒麟软件有限公司的银河麒麟高级服务器操作系统(飞腾版)V10和银河麒麟高级

    2024年02月19日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包