Mount installer root and ESP using their known filesystem types

This commit is contained in:
Codex
2026-10-13 22:29:56 +03:00
parent a77006a05f
commit 3c15890823
2 changed files with 25 additions and 4 deletions
+4 -4
View File
@@ -509,10 +509,10 @@ def render_plan(request, target, root):
['mount', '-t', 'btrfs', '-o', 'subvol=@home', part, str(Path(root) / 'home')],
['mount', '-t', 'btrfs', '-o', 'subvol=@snapshots', part, str(Path(root) / '.snapshots')]])
else:
commands.append(['mount', part, str(root)])
commands.append(['mount', '-t', 'ext4', part, str(root)])
commands += [
['unsquashfs', '-f', '-d', str(root), request.payload],
['mount', esp, str(Path(root) / 'boot/efi')],
['mount', '-t', 'vfat', esp, str(Path(root) / 'boot/efi')],
['blkid', '-s', 'UUID', '-o', 'value', part],
['blkid', '-s', 'UUID', '-o', 'value', esp],
['mount', '--rbind', '/dev', str(Path(root) / 'dev')],
@@ -744,7 +744,7 @@ def install(request, runner, probe, root, password, log: TextIO):
(root / directory).mkdir()
mount(['mount', '-t', 'btrfs', '-o', 'subvol=' + subvolume, part, str(root / directory)], root / directory)
else:
mount(['mount', part, str(root)], root)
mount(['mount', '-t', 'ext4', part, str(root)], root)
run(['unsquashfs', '-f', '-d', str(root), request.payload])
kernel = select_kernel(root, request.kernel)
remove_live_files(root)
@@ -753,7 +753,7 @@ def install(request, runner, probe, root, password, log: TextIO):
raise InstallError('Timezone does not exist in payload: ' + request.timezone)
for folder in ('boot/efi', 'dev', 'proc', 'sys'):
target_path(root, folder).mkdir(parents=True, exist_ok=True)
mount(['mount', esp, str(root / 'boot/efi')], root / 'boot/efi')
mount(['mount', '-t', 'vfat', esp, str(root / 'boot/efi')], root / 'boot/efi')
root_uuid = run(['blkid', '-s', 'UUID', '-o', 'value', part]).strip()
esp_uuid = run(['blkid', '-s', 'UUID', '-o', 'value', esp]).strip()
if any(not re.fullmatch(r'[A-Fa-f0-9-]+', value) for value in (root_uuid, esp_uuid)):