** Summary changed:

- grub 2.06  prob fat fs fail.
+ FAT filesystem probing fails if a file's timestamp exceeds 2038

** Description changed:

- I found this issue on Ubuntu 22.04.5 LTS, but it's a general issue for 
grub-2.06.
- This is my setup information:
-       nvme0n1
-       ├─nvme0n1p1  vfat   FAT32 EFI0  5282-D345                              
40.6M    17% /boot/efi
-       └─nvme0n1p2  ext4   1.0   OS0   bdfcdb95-b1c7-42ea-b1b8-69c20099586e  
105.6G     4% /
- The first partition is /dev/nvme0n1p1, FAT format.
- The grub prefix environment value default be set:
-       prefix=(hd0,gpt1)/EFI/ubuntu      # read grub at 
/boot/efi/EFI/ubuntu/grub.cfg.
+ [Impact]
+ If any file's timestamp under `/boot/efi` exceeds 2038, the FAT filesystem 
probe will fail, and the system will drop into the GRUB shell.
  
- Grub will first probe the /dev/nvme0n1p1, which is the FAT format. When
- trying FAT fs, the mount is successful, but there is a check that if any
- files under the mount patch(/boot/efi) timestamp exceeds 2038, probe
- will fail, and try next type FS(for example, ext2...). Ultimately, the
- probe will fail and can not read the grub.cfg and show the grub menu,
- then enter the grub cmdline.
+ [Fix]
+ There is an upstream patch that fixes this issue:
+ 
https://git.savannah.gnu.org/cgit/grub.git/commit/grub-core/fs?id=e43f3d93b28cce852c110c7a8e40d8311bcd8bb1
  
- It's easy to reproduce:
-     touch -d "2038-02-20" /boot/efi/EFI
-     reboot.   # After reboot, enter the grub cmdline.
+ [Test Plan]
+ 1. Change the timestamp of a directory under /boot/efi to exceed 2038:
+ touch -d "2038-02-27" /boot/efi/EFI
+ 2. Reboot, and the system will be entered into the grub shell.
  
- Can mannel boot the setup success:
-     set prefix=(hd0,gpt2)/boot/grub   # set the "grub.cfg" on the second 
partition, it's ext2 format. The path is:  "/boot/grub/grub.cfg". Actually 
"/boot/efi/EFI/ubuntu/grub.cfg" redirected to it.
-     insmod linux
-     insmod normal
-     normal         # Boot linux success.
- 
- There already is a fix in the master branch:  e43f3d93b fs/fat: Don't error 
when mtime is 0. 
- I have tested it, and it works. We need to include this patch in the latest 
Ubuntu grub-2.06 code.
+ [Where problems could occur]
+ The patch simply bypasses the error logic when the modification time is zero 
in FAT.
+ There should be no regression unless the FAT filesystem is unable to handle 
such scenarios.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2098641

Title:
  FAT filesystem probing fails if a file's timestamp exceeds 2038

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/2098641/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to