可能这是重复的,我无法从搜索引擎中找到相关信息。我如何将文件提取.img.gz
到.img
文件中?
我将文件归档为 .img.xz 和 .img.gz。xz-utils
我可以使用或unxz
从这种方式提取.img.xz ,但我无法找到ungz
我的矿工在哪里。
提前致谢。
可能这是重复的,我无法从搜索引擎中找到相关信息。我如何将文件提取.img.gz
到.img
文件中?
我将文件归档为 .img.xz 和 .img.gz。xz-utils
我可以使用或unxz
从这种方式提取.img.xz ,但我无法找到ungz
我的矿工在哪里。
提前致谢。
我确实重新制作了用于在我的计算机上安装 ubuntu 的图像,以获得自定义预种子。但是在 20.10 中,我以前使用的进程和命令不起作用
这是我在 20.04 中使用的命令:
xorriso -as mkisofs -r -V "$disk_title" -J -joliet-long -cache-inodes -l -isohybrid-mbr "$MBR_FILE" -c isolinux/boot.cat -b isolinux/isolinux.bin -boot-load-size 4 -iso-level 3 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat -o Image.iso unpackedImageDirectory
但是 20.10 似乎根本没有使用 isolinux(syslinux),因为我无法找到该目录。目录中的文件boot
也发生了变化。
新的正确流程是什么?
我正在尝试在 Docker 容器(运行 Ubuntu 20.04 x64)内构建自定义 NVIDIA Jetson Nano 映像(aarch64 架构)。我跳过了 NVIDIA 工具部分,因为在创建证明时我被困在第一部分。我正在使用以下命令:
apt-get update
apt-get install --no-install-recommends -q -y ca-certificates curl dialog apt-utils bzip2 python gdisk binfmt-support qemu qemu-user-static debootstrap
mkdir -p rootfs
qemu-debootstrap --arch=arm64 --variant=minbase --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg focal rootfs
我也试过
debootstrap --arch=arm64 --foreign --variant=minbase --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg focal rootfs
chroot rootfs qemu-aarch64-static /bin/bash -c '/debootstrap/debootstrap --second-stage'
但是在使用 GitLab CI 执行此操作时,我总是会收到以下错误。
I: Running command: chroot test /debootstrap/debootstrap --second-stage
chroot: failed to run command '/debootstrap/debootstrap': Exec format error
ERROR: Job failed: exit code 1
当我在 WSL 甚至本地 Docker 容器中本地运行它时,它可以工作。
我还尝试了 Ubuntu 18.04.4 或完全跳过“自定义 rootfs”部分。但是,无论如何我都需要仿真部分,因为 NVIDIA 工具无论如何都在执行 aarch64 二进制文件。
Installing BSP Debian packages in /builds/richardds/jetson-nano-image/build/rootfs
chroot: failed to run command 'dpkg': Exec format error
ERROR: Job failed: exit code 1
您能否推荐我如何修复它或在 GitLab-CI 环境(运行 Docker 容器)中创建自定义 aarch64 rootfs 的任何其他工作方式?
我正在尝试更新用于重新管理 20.04 的 Ubuntu 18.04 安装映像的进程,并在提取 initrd 存档时遇到问题。使用的命令是cpio -id --no-absolute-filenames
. 当我使用相同的命令从 20.04 映像中提取 initrd 映像时,它会提取kernel/x86/microcode/AuthenticAMD.bin
并停止。
检查 initrd 文件内容,我可以看到一个“TRAILER”部分,显示文件中有多个存档。正如关于 cpio 档案的其他线程中所建议的那样,我试图提取复合档案:cat initrd | while cpio -id --no-absolute-filenames; do :; done
. 在这种情况下,第一个条目提取但随后它有一堆“0 块”并且不提取任何其他内容。
有谁知道这个档案是如何创建的或如何提取它?
我还没有找到明确的答案或做我正在寻找的事情的方法。我习惯于在 Windows 环境中执行此操作,只是想知道我是否可以在 Ubuntu 上执行相同操作。
我想先在装有 Ubuntu 的笔记本电脑上进行全新安装,然后添加和删除我认为对我希望配置的笔记本电脑群必要的软件。理想情况下,我会拍摄我配置的笔记本电脑的“快照”,将其存储在服务器上,并且我连接到本地网络(通过以太网)的任何计算机都可以通过网络启动(PXE?)进入安装指南和安装我指定的配置。
有办法吗?
我有一个xz
扩展名为ubuntu-19.10-preinstalled-server-arm64+raspi3.img.xz
. 你如何.img
摆脱它?
我的目标是将文件闪存到 SD 卡上。我想使用 www.etcher.io 我终于让它工作了,但是 etcher 只会处理.iso
和.img
文件。
论坛新手并运行 18.04。可能是我犯的一个新手错误,但搜索了论坛和教程。
gnome-disk-utility 教程非常简单,并且似乎在他们正在备份的操作系统中工作 - 只需选择分区或整个磁盘映像并选择一个目标。
我有 3 个分区:
如果我尝试对整个磁盘进行映像,在我进行身份验证后会收到此错误:错误卸载 /dev/sda2:target is busy (udisks-error-quark, 14)
我看到的另一个错误只是试图单独创建 /dev/sda1 分区的备份:打开文件时出错“/media/freebird/FBbackup/sda1 (2019-11-24 1620).img 的磁盘映像”:权限被拒绝( g-io-错误夸克,14)
我最接近将 3 个分区中的任何一个进行映像的方法是使用交换分区,但只有在我禁用交换sudo swapoff -a
之后,它才能像教程中那样工作,并且可以到任何目标位置。我显然不关心交换分区,但是如果我尝试使用 gnome-disk 单独执行整个驱动器或其他两个分区中的任何一个,我会收到错误消息。
我也尝试从 Live USB 运行,但后来我遇到了权限问题和类似的错误。我错过了什么?
谢谢!
布赖恩
关于获取磁盘映像并缩小根(仿生)文件系统分区然后截断映像以删除成为可用空间的部分的大量信息。喜欢 https://softwarebakery.com//shrinking-images-on-linux
所以基本上分为三个步骤。使用 resize2fs 缩小分区上的文件系统,然后也减小分区的大小。然后最后删除图像文件中现在未使用的空间。
这是我遇到问题的第三部分。每次我尝试 dd 或 truncate 时,图像的所有分区都会被删除,就好像图像文件中的 GPT 分区表被丢弃一样。
这是原始图像
GPT fdisk (gdisk) version 1.0.3
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk rock64-base.img: 30310400 sectors, 14.5 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 159DCEDE-DBEA-4657-96D9-2CE178A96B7E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 30310366
Partitions will be aligned on 64-sector boundaries
Total free space is 30 sectors (15.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 64 8063 3.9 MiB 8300 loader1
2 8064 8191 64.0 KiB 8300 reserved1
3 8192 16383 4.0 MiB 8300 reserved2
4 16384 24575 4.0 MiB 8300 loader2
5 24576 32767 4.0 MiB 8300 atf
6 32768 262143 112.0 MiB 0700 boot
7 262144 30310366 14.3 GiB 8300 root
然后在前两个步骤之后
Found valid GPT with protective MBR; using GPT.
Disk test.img: 30310400 sectors, 14.5 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 159DCEDE-DBEA-4657-96D9-2CE178A96B7E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 30310366
Partitions will be aligned on 64-sector boundaries
Total free space is 23555002 sectors (11.2 GiB)
Number Start (sector) End (sector) Size Code Name
1 64 8063 3.9 MiB 8300 loader1
2 8064 8191 64.0 KiB 8300 reserved1
3 8192 16383 4.0 MiB 8300 reserved2
4 16384 24575 4.0 MiB 8300 loader2
5 24576 32767 4.0 MiB 8300 atf
6 32768 262143 112.0 MiB 0700 boot
7 262144 6755394 3.1 GiB 8300 primary
可以看到根文件系统分区已经缩减到3.1G
我可以很好地加载该图像。我可以把它放回 SD 卡上并启动我的设备。所以步骤 1 和 2 没问题。
现在...
如果我完成了执行 `truncate --size=$[(6755394+1)*512] 'test.img' 的过程
和
GPT fdisk (gdisk) version 1.0.3
Warning! Disk size is smaller than the main header indicates! Loading
secondary header from the last sector of the disk! You should use 'v' to
verify disk integrity, and perhaps options on the experts' menu to repair
the disk.
Caution: invalid backup GPT header, but valid main header; regenerating
backup header from main header.
Warning! Error 25 reading partition table for CRC check!
Warning! One or more CRCs don't match. You should repair the disk!
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: damaged
****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************
Disk test2.img: 6755395 sectors, 3.2 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): 159DCEDE-DBEA-4657-96D9-2CE178A96B7E
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 30310366
Partitions will be aligned on 64-sector boundaries
Total free space is 23555002 sectors (11.2 GiB)
Number Start (sector) End (sector) Size Code Name
1 64 8063 3.9 MiB 8300 loader1
2 8064 8191 64.0 KiB 8300 reserved1
3 8192 16383 4.0 MiB 8300 reserved2
4 16384 24575 4.0 MiB 8300 loader2
5 24576 32767 4.0 MiB 8300 atf
6 32768 262143 112.0 MiB 0700 boot
7 262144 6755394 3.1 GiB 8300 primary
显然 truncate(或 dd 就此而言)在 GPT 中表现不佳。在此文件上运行 gdisk 确认 gpt 已被丢弃
如果我在截断的文件上运行 gdisk,它会报告一个垃圾 GPT。
所以很明显我在这里遗漏了一些东西。显然,当磁盘文件的末尾发生更改时,GPT 会损坏或需要修复(不匹配)。即使它在第 2 步结束时很好/存在。我弄乱了 gdisk 并且无法修复它。除此之外,我想要一个可以用脚本做的解决方案,而这个 GPT 不起作用。
因此,因为它是 GPT,我是否需要使用截断或 dd 以外的其他东西,还是必须在截断后手动“修复”GPT。
这是 gdisk 验证报告的内容
Caution: The CRC for the backup partition table is invalid. This table may
be corrupt. This program will automatically create a new backup partition
table when you save your partitions.
Problem: The secondary header's self-pointer indicates that it doesn't reside
at the end of the disk. If you've added a disk to a RAID array, use the 'e'
option on the experts' menu to adjust the secondary header's and partition
table's locations.
Problem: Disk is too small to hold all the data!
(Disk size is 6755395 sectors, needs to be 30310400 sectors.)
The 'e' option on the experts' menu may fix this problem.
Problem: GPT claims the disk is larger than it is! (Claimed last usable
sector is 30310366, but backup header is at
30310399 and disk size is 6755395 sectors.
The 'e' option on the experts' menu will probably fix this problem
Partition(s) in the protective MBR are too big for the disk! Creating a
fresh protective or hybrid MBR is recommended.
我认为 Ubuntu iso 文件的标准网站是
但是这种方式很难找到一些文件。请描述如何找到所有 Ubuntu iso 文件和其他图像!是否有任何可以记住的快捷方式或网站?