我有一个内部硬盘,分区如下:
[---- 100 GB unused ----|----------- 800 GB data ------------]
- 100 GB 未使用或“待删除”的旧分区
/dev/sdb1
,/dev/sdb2
,/dev/sdb3
- 800 GB NTFS重要数据分区
/dev/sdb4
(我有备份)
我还有一个ubuntu.img
包含已安装 Ubuntu 的 10GB 磁盘映像(它不是“安装程序磁盘”映像)。该映像可以从 VirtualBox 运行,也可以使用 写入外部 USB 硬盘dd if=ubuntu.img of=/dev/sdc
,然后我可以成功启动该外部 USB 硬盘。当我使用 VirtualBox 启动此映像时,在虚拟机内lsblk
显示以下内容:
问题:如何将此映像写入ubuntu.img
我的内部 HDD(在 /dev/sdb?sdb1?)中,以便:
- 我可以启动它
- /dev/sdb4 未被删除
?
一方面,如果我这样做dd if=ubuntu.img of=/dev/sdb
,分区表可能会被擦除并/dev/sdb4
丢失。另一方面,如果我dd if=ubuntu.img of=/dev/sdb1
,它可能无法启动,对吗?
答案1
- 用于
fdisk
将d
卷删除sdb1
到sdb3
- 还是在
fdisk
,创建一个n
新卷sdb1
,覆盖整个可用的 100 GB 空间 - 现在您只想将
sda1
映像复制到sdb1
,因此需要fdisk ubuntu.img
打印p
映像的分区表并读取第一个映像分区的起始扇区和扇区数 dd if=ubuntu.img of=/dev/sdb1 skip=<start-sector> count=<sectors>
- 最后,您可以扩展文件系统
sbd1
以使用卷的整个大小(可能使用resize2fs /dev/sdb1
)