我需要以非 root 身份安装 ISO。已安装 ISO 内的文件名很重要。因为我是“非root”,fuseiso
所以是最合乎逻辑的选择,但它不会产生“正确的文件名”,而mount
会产生“正确的文件名”。对于fuseiso
,空格将替换为下划线,并且大写字母将变为非大写。
有没有办法改变fuseiso
的行为来复制 的行为mount
?
带安装的 ISO 的正确内容:
[me@pc stalkersoup]$ sudo mount 'STALKERSOUP Game Install.iso' mnt
[me@pc stalkersoup]$ ls mnt
'STALKERSOUP game setup-10.bin' 'STALKERSOUP game setup-4.bin' 'STALKERSOUP game setup-8.bin'
'STALKERSOUP game setup-1.bin' 'STALKERSOUP game setup-5.bin' 'STALKERSOUP game setup-9.bin'
'STALKERSOUP game setup-2.bin' 'STALKERSOUP game setup-6.bin' 'STALKERSOUP game setup.exe'
'STALKERSOUP game setup-3.bin' 'STALKERSOUP game setup-7.bin'
ISO 内容不正确fuseiso
:
[me@pc stalkersoup]$ fuseiso 'STALKERSOUP Game Install.iso' mnt/
[me@pc stalkersoup]$ ls mnt/
stalkersoup_game_setup_10.bin stalkersoup_game_setup_4.bin stalkersoup_game_setup_8.bin
stalkersoup_game_setup_1.bin stalkersoup_game_setup_5.bin stalkersoup_game_setup_9.bin
stalkersoup_game_setup_2.bin stalkersoup_game_setup_6.bin stalkersoup_game_setup.exe
stalkersoup_game_setup_3.bin stalkersoup_game_setup_7.bin
上下文,以避免 XYZ 问题情况:
setup.exe
文件名很重要,因为我想用innoextract提取内容,并且所有bin
文件都包含提取所需的数据,并且它们的路径是硬编码的- 我这样做是因为我正在编写 PKGBUILD(用于构建 arch 包的 bash 脚本)。这是一个必须以非 root 身份运行的 bash 脚本。因此,我只能以非 root 身份使用 CLI 工具
- 我这样做是为了个人用途,这是合法的,因为游戏是免费分发的
- 无法重命名,因为安装的 ISO 是只读的
- 例如,我可以使用 p7zip 提取 ISO 的内容,这就是我目前正在做的事情
- 但这不是一个好的解决方案,因为它浪费时间和存储
- 我无法修改存档,因为我必须“按作者发布的方式”使用它
预先感谢您的帮助和专业知识:)
答案1
在reddit的帮助下找到了答案。我就总结到这里,大家可以参考一下这个 Reddit 话题。
选项 1:使用 guestmount
guestmount -a 'STALKERSOUP Game Install.iso' -m /dev/sda mnt/
在哪里找到 /dev/sda :
virt-filesystems -a "STALKERSOUP Game Install.iso"
选项 2:使用 U 盘
# Setup loop file with udisksctl
udisksctl loop-setup --file "STALKERSOUP Game Install.iso"
bdev="/dev/loop0" # can change
udisksctl mount --block-device "$bdev"
mpoint="/media/STALKERSOUP Game Install" # can change