是否有任何 shell 命令可以用来确定磁盘映像文件的格式?我想检查磁盘映像文件是以下哪种格式:vmdk、原始文件的 vhd。
我有一个带有 2 个分区的磁盘映像。当我做#losetup -f <file>
只/dev/loop0
出现。我如何制作/dev/loop0p0
和/dev/loop0p1
出现?使用#parted /dev/loop0
它确实显示存在 2 个分区。我需要将 2 个分区作为单独的设备 chroot 到主分区并在 esp 分区上设置 grub。
# sudo losetup -f disk.img
得到:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 5G 0 loop
sda 8:0 0 223,6G 0 disk
├─sda1 8:1 0 300M 0 part /boot/efi
├─sda2 8:2 0 214,5G 0 part /
└─sda3 8:3 0 8,8G 0 part [SWAP]
预期的:
loop0
├─loop0p0
└─loop1p1
Parted 显示分区确实存在:
# parted
[ ... ]
(parted) print list,all
Model: Loopback device (loopback)
Disk /dev/loop0: 5369MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 135MB 134MB fat32 efi boot, esp
2 135MB 5368MB 5232MB ext4 main
[ ... ]
尝试在 GCP 计算引擎中创建 VM 实例时,每个版本只有 RHEL 最新版本的映像可用。RHEL 7.9 和 RHEL 8.3 可用。但无法在 Marketplace 和 Public 镜像中找到 RHEL 7.6/7.7/7.8/8.1/8.2 镜像。参考这张图片。 RHEL 7 提供 RHEL 7.9,RHEL 8 提供 RHEL 8.3如何在没有 SAP 的情况下获得较低版本的 RHEL?
我从正在运行的 ubuntu 虚拟机在 GCE 上创建了一个机器映像,该虚拟机有一个“附加”磁盘可供安装。该磁盘已安装用于备份,然后被卸载,并且在制作机器映像时未安装。
一段时间后(cron 作业),安装了附加磁盘,写入了备份,然后卸载。手动挂载磁盘会显示新的备份文件。
后来我从机器映像创建了一个新的虚拟机。当我启动该虚拟机并挂载备份磁盘时,它不会显示最后写入的备份文件。如果我在控制台中查看该项目的磁盘,我会看到两个新磁盘——一个用于从机器映像克隆引导磁盘,另一个用于“附加”磁盘。
这似乎意味着创建机器映像也会创建 VM 可用的任何“附加”磁盘的映像,即使它们没有挂载。有没有一种方法可以创建机器映像,而无需克隆未安装的磁盘,也无需取消磁盘与原始 VM 的关联?
我正在尝试创建一个自定义的 clonezilla 安装程序,作为从记忆棒刷新我们的标准机器的工具。
我可以从 syslinux/syslinux.cfg 自定义开始菜单就好了,但我希望大记忆棒也包含要恢复的图像。该图像在 /lib/live/mount/medium/myImage 中,可以从命令行中看到,但安装程序似乎想在 /home/partimag 上找到它
有没有办法修改 ocs-live-run="ocs-sr ..." 等以指向本地路径,而不必挂载 /home/partimag ?
在此先感谢-我正在拔头发。
如下迈克尔的脚本:
# mount the image where Clonezilla wants to find it
echo Mounting /lib/live/mount/medium/image on to /home/partimag/
mount --bind /lib/live/mount/medium/image /home/partimag/
RET=$?
if [ ${RET} -ne 0 ]
then
echo "FAILURE: Mount failed! Image missing?"
exit 2
fi
# now actually do the restore.
# -p true - exit with success
# -g auto - grub install in the right place
# -e* <whatever> - geometry
# -r – resize when restore done
# -j2 – clone hidden data
# -c – wait for confirm
# -p true – just exit
# -src – skip image check on restore
echo Now doing restore (disk)
ocs-sr -g auto -e1 auto -e2 -r -j2 -c -p true -scr restoredisk gen4image sda
#ocs-sr -g auto -e2 -c -r -j2 -k true restoreparts aks_user sda1
RET=$?
echo Returned $RET
if [ ${RET} -ne 0 ]
then
echo "FAILURE: Imaging failed! Bad image? Bad drive?"
exit 1
fi
我有一个使用“多个 vmdk”格式(大约 7 个 vmdk 文件)的 VMware 实例。我想将整个磁盘映像写入我的笔式驱动器。
如果是“单个 vmdk”映像,我可以使用
qemu-img convert file.vmdk -O raw /my/drive/
但是,我不确定如何对多 vmdk 格式做同样的事情。
我是否必须将它们组合成一个 vmdk,然后写入我的笔式驱动器,或者是否有其他选择?
我正在尝试创建一个 Windows 10 映像,以便对现有的旧应用程序进行 dockerize。出于很好的理由,基础映像必须是 Windows 10而不是Windows Server。我该怎么做呢?
我想到的是:
1) 将我的 vanilla Windows 安装创建为 Hyper-V 机器
2)将应用程序安装到它上面
3)关闭这个虚拟机
4) 将生成的 VHDX 转换为 Windows 映像 (WIM) 文件
5) 不知何故将此用作 docker 的基础映像
我在正确的道路上吗?
我运行基于 KVM 的虚拟化服务器(即 Proxmox),其中一些基于 Debian 的机器在 KVM VM 中运行。Proxmox 可以创建 VM 的备份,它还可以压缩 VM 磁盘映像。
正如我们所了解的,备份大小随着时间的推移而增加,因为每个 VM 磁盘上存储的数据越来越多,并且 VM 磁盘的更多“干净”块变得“脏”(即包含剩余的旧文件)。因此,即使我通过rm -rf
它删除了这样一个虚拟磁盘上的所有文件,实际上备份的大小也会相同,因为这不会清除 VM 磁盘的所有块。
dd if=/dev/zero of=/BIG.txt
我可以通过执行类似然后的操作来“清除”VM磁盘rm -f /BIG.txt
- 这样我创建了一个充满零的大文件,它将使用所有磁盘空间,并且在我删除它之后,它的前块将包含零。不利的一面是磁盘会暂时变满,这会影响每个想要写任何东西的程序。
但是也许还有其他方法可以用零清除未使用的磁盘块,以便备份以更好的速率压缩这样的磁盘?一些基于 Windows 的程序提供了“清除未使用的磁盘空间”的选项(例如 CCleaner),但对于 Linux,我需要它。
在 Mac OS X 上是否可以/dev
使用 shadowfile 以只读方式安装磁盘设备,因此文件系统仍然可以读写?
我知道如何使用 对磁盘映像文件执行此操作hdiutil
,但相同的选项似乎不适用于块设备。
假设我有一个 32 GB USB 闪存驱动器 (UFD) 和一个 8 GB UFD。我在较大的 UFD 开始时有一个 5 GB 的分区,其余的未分配。问题是使用 dd 或类似工具将分区和引导扇区复制到 8 GB UFD。这是可以实现的吗?