From 0a367c41ea2b956b7952e1e81da6d51e95a310cd Mon Sep 17 00:00:00 2001 From: Samuel Dionne-Riel Date: Wed, 28 Nov 2018 19:09:02 -0500 Subject: iso-image: Verifies the FAT partition at build. This is done to ensure `mtools`-based operations leave a clean FS. --- nixos/modules/installer/cd-dvd/iso-image.nix | 2 ++ 1 file changed, 2 insertions(+) (limited to 'nixos/modules') diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index 96fdb997b2c..dbf7643c336 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -340,6 +340,8 @@ let truncate --size=$image_size "$out" ${pkgs.libfaketime}/bin/faketime "2000-01-01 00:00:00" ${pkgs.dosfstools}/sbin/mkfs.vfat -i 12345678 -n EFIBOOT "$out" mcopy -bpsvm -i "$out" ./* :: + # Verify the FAT partition. + ${pkgs.dosfstools}/sbin/fsck.vfat -vn "$out" ''; # */ targetArch = if pkgs.stdenv.isi686 then -- cgit 1.4.1 From 38644380493cb87c209115c54dc908a89f43e91b Mon Sep 17 00:00:00 2001 From: Samuel Dionne-Riel Date: Wed, 28 Nov 2018 19:14:54 -0500 Subject: iso-image: Do not use batch operations for `mcopy`. ``` b Batch mode. Optimized for huge recursive copies, but less secure if a crash happens during the copy. ``` It seems the "less secure if a crash happens" does not need a crash to happen. With batch mode: ``` /[...]/. Start (0) does not point to parent (___) ``` For pretty much everything copied in. Without batch mode, everything passes `fsck`. See #51150 --- nixos/modules/installer/cd-dvd/iso-image.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nixos/modules') diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index dbf7643c336..aa8003fef2c 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -339,7 +339,7 @@ let echo "Image size: $image_size" truncate --size=$image_size "$out" ${pkgs.libfaketime}/bin/faketime "2000-01-01 00:00:00" ${pkgs.dosfstools}/sbin/mkfs.vfat -i 12345678 -n EFIBOOT "$out" - mcopy -bpsvm -i "$out" ./* :: + mcopy -psvm -i "$out" ./* :: # Verify the FAT partition. ${pkgs.dosfstools}/sbin/fsck.vfat -vn "$out" ''; # */ -- cgit 1.4.1