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
    • 最新
    • 标签
主页 / server / 问题 / 1097817
Accepted
Rino Bino
Rino Bino
Asked: 2022-04-05 20:01:09 +0800 CST2022-04-05 20:01:09 +0800 CST 2022-04-05 20:01:09 +0800 CST

pxe 引导时使用压缩的 initrd

  • 772

我正在使用带有 grub 的 netboot/pxeboot。

menuentry "Install Ubuntu 20.04" {
  set gfxpayload=keep
  echo 'Loading vmlinuz ...'
  linux  /tftp/vmlinuz ip=dhcp netboot=nfs nfsroot=10.0.0.20:/data/netboot/nfs/ubuntu2004/ boot=casper toram noquiet splash=off console=tty0 console=ttyS1,57600n8 ---
  echo 'Loading initrd, this takes a long time ...'
  initrd /tftp/initrd
}

它工作正常,但是,通过 tftp 加载 initrd 需要很长时间(30 多分钟)。我想压缩(gz/bz2)这个文件以节省一些文件传输时间。

我看到了一些例子,指的是initrd.gz(一个例子:https ://unix.stackexchange.com/questions/217002/which-iso-file-vmlinuz-and-initrd-gz-to-use-for-installing- centos-from-multiboo)但是当我试图用 gzip 压缩文件并使用它时,我收到一个错误,例如:

[   12.543547] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[   12.558487] Please append a correct "root=" boot option; here are the available partitions:
[   12.575161] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

有没有办法压缩这个文件,以便它可以传输更小的文件大小,并在尝试挂载根 fs 之前将其解压缩?

或者,有没有办法通过不同的协议(HTTP/FTP/SFTP/SCP/etc)传输它?

boot pxe-boot linux-kernel tftp
  • 2 2 个回答
  • 490 Views

2 个回答

  • Voted
  1. Best Answer
    Pat
    2022-04-06T06:23:27+08:002022-04-06T06:23:27+08:00

    initrd 是从文件树结构创建的压缩 CPIO 结构,其命令如下:

    find . | cpio -o -c -R root:root | gzip -9 > /boot/new.img
    

    ubuntu-20.04-desktop-amd64initrd 已经被压缩,重量约为 87MB 。该文件的 TFTP 传输应该在 36 秒左右。

    [04/05 08:17:46.445] TFTP Inf: <\NWA_PXE\ubuntu-20.04-desktop-amd64\casper\initrd>: sent blks=63901 blkSz=1408, Total 89971296 bytes in 36s, err recovery=0 
    

    如果您的 TFTP 传输需要半小时,则您的网络 TFTP 设置存在不同的问题。Wireshark 流量捕获可以帮助您查明问题。

    • 1
  2. Rino Bino
    2022-04-06T07:44:02+08:002022-04-06T07:44:02+08:00

    @Pat 的回答被接受并且更详细,但是这里是原始问题的直接答案:

    有没有办法压缩这个文件,以便它可以传输更小的文件大小,并在尝试挂载根 fs 之前将其解压缩?

    不,它已经被压缩了。接受的答案给出了一个例子。

    或者,有没有办法通过不同的协议(HTTP/FTP/SFTP/SCP/etc)传输它?

    不适用于常规 PXE。使用另一个网络引导系统,例如 iPXE,它允许 http/nfs

    • 1

相关问题

  • Windows 7 - 从 XP VHD 启动

  • 更改配置后启动缓慢

  • 将服务器引导到 ISO 的选项

  • IBM x346 不会发布

  • 从备份还原后 SBS 2003 无法启动

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve