实时USB,在同一设备上安装第二个分区

如何在安装Live Ubuntu的同一USB磁盘上安装第二个分区?

我用dd创建了一个USB。

我使用fdisk创建了第二个VFAT分区,并使用mkfs.ext2对其进行了格式化。

当我尝试运行“ sudo mount /dev/sda2 /mnt ”时出现错误: /dev/sda2 already mounted or /mnt is busy.

这可能是因为/ dev / sda(整个驱动器,而不是分区)已经安装在/ cdrom上,类型为iso9660。

我如何克服这个问题,我需要能够在第二个分区上永久存储一些文件。

问题是/ dev / sda包含/ dev / sda2。 如果两者都应作为读写文件系统安装,那将是一个严重的障碍。 但在您的情况下,/ dev / sda中的ISO 9660(也在/ dev / sda1中)是只读的。 所以不会有文件系统的战斗。

安装两个文件系统的正常方法是umount / dev / sda和mount / dev / sda1。 它与/ dev / sda2不重叠。 所以mount(8)会觉得没问题

但是,如果正在运行的系统依赖于ISO 9660文件系统中的文件,则可能无法将其卸载。 在这种情况下,仍然存在使用像/ dev / loop0这样的循环设备的后门。 这种设备基于数据文件或块设备文件。 它充当块设备。 有关详细信息,请参阅man losetup(8)。

mount(8)提供方便选项“loop”。 所以这应该工作,虽然/ dev / sda已经安装:

 mount -o loop /dev/sda2 /your/mount/directory 

幸运的是,mount(8)太愚蠢了,无法识别重叠,尽管它然后将分区设备列为已安装而不是环路设备。

 /dev/sdc on /mnt/iso type iso9660 (ro,relatime) /dev/sdc2 on /mnt/fat type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=utf8,shortname=mixed,errors=remount-ro) 

所以这个技巧可能会在将来停止工作……:((但也许它也足够聪明地认识到重叠是无害的。)

我没有成功修改使用Startup Disk Creator或Rufus制作的ISO 9660驱动器上的分区。

但是,如果您使用mkusb来制作驱动器,您将获得一个小型FAT32启动分区,一个ISO 9660操作系统分区,一个ext4 casper-rw持久性分区和一个NTFS数据分区(如果需要)。

如果不需要持久性,则可以删除casper-rw分区,然后展开或重新格式化NTFS分区以满足您的需要。