[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ~3TB ext4 volume not read correctly by ext2-fs driver in GRUB2
From: |
Vladimir 'φ-coder/phcoder' Serbinenko |
Subject: |
Re: ~3TB ext4 volume not read correctly by ext2-fs driver in GRUB2 |
Date: |
Wed, 24 Feb 2010 11:49:36 +0100 |
User-agent: |
Mozilla-Thunderbird 2.0.0.22 (X11/20091109) |
Try attached patch
Tony Vroon wrote:
> Ladies and gentlemen,
>
> It would appear that the ext2-fs driver is not reliably able to read
> directories on my ~3TB / filesystem:
> /dev/root 3.4T 1.7T 1.6T 52% /
> /dev/root on / type ext4 (rw,noatime,barrier=1,data=ordered)
>
> Whilst doing some troubleshooting over IRC, I was given a debug patch.
> With this patch applied, I'll show you a working directory entry (/etc)
> and a non-working directory entry (/boot):
> prometheus ~ # grub-fstest -d ext2 -v /dev/sda3 ls /etc
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:651: iterating inode size=4096 mode=0x41ed
> fs/ext2.c:688: got filename: '.', type 2
> fs/ext2.c:862: grub_fshelp_dir returning: 0
> fs/ext2.c:651: iterating inode size=4096 mode=0x41ed
> fs/ext2.c:688: got filename: '.', type 2
> fs/ext2.c:688: got filename: '..', type 2
> fs/ext2.c:688: got filename: 'lost+found', type 2
> fs/ext2.c:688: got filename: 'lib', type 7
> fs/ext2.c:688: got filename: '.config', type 1
> fs/ext2.c:688: got filename: 'sbin', type 2
> fs/ext2.c:688: got filename: 'root', type 2
> fs/ext2.c:688: got filename: 'mnt', type 2
> fs/ext2.c:688: got filename: 'opt', type 2
> fs/ext2.c:688: got filename: 'var', type 2
> fs/ext2.c:688: got filename: 'usr', type 2
> fs/ext2.c:688: got filename: 'dev', type 2
> fs/ext2.c:688: got filename: 'lib32', type 2
> fs/ext2.c:688: got filename: 'home', type 2
> fs/ext2.c:688: got filename: 'tmp', type 2
> fs/ext2.c:688: got filename: 'media', type 2
> fs/ext2.c:688: got filename: 'sys', type 2
> fs/ext2.c:688: got filename: 'cvs', type 2
> fs/ext2.c:688: got filename: 'proc', type 2
> fs/ext2.c:688: got filename: 'etc', type 2
> fs/ext2.c:651: iterating inode size=0 mode=0x0
> fs/ext2.c:862: grub_fshelp_dir returning: 0
>
> prometheus ~ # grub-fstest -d ext2 -v /dev/sda3 ls /boot
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:862: grub_fshelp_dir returning: 9
> fs/ext2.c:651: iterating inode size=4096 mode=0x41ed
> fs/ext2.c:688: got filename: '.', type 2
> fs/ext2.c:862: grub_fshelp_dir returning: 0
> fs/ext2.c:651: iterating inode size=4096 mode=0x41ed
> fs/ext2.c:688: got filename: '.', type 2
> fs/ext2.c:688: got filename: '..', type 2
> fs/ext2.c:688: got filename: 'lost+found', type 2
> fs/ext2.c:688: got filename: 'lib', type 7
> fs/ext2.c:688: got filename: '.config', type 1
> fs/ext2.c:688: got filename: 'sbin', type 2
> fs/ext2.c:688: got filename: 'root', type 2
> fs/ext2.c:688: got filename: 'mnt', type 2
> fs/ext2.c:688: got filename: 'opt', type 2
> fs/ext2.c:688: got filename: 'var', type 2
> fs/ext2.c:688: got filename: 'usr', type 2
> fs/ext2.c:688: got filename: 'dev', type 2
> fs/ext2.c:688: got filename: 'lib32', type 2
> fs/ext2.c:688: got filename: 'home', type 2
> fs/ext2.c:688: got filename: 'tmp', type 2
> fs/ext2.c:688: got filename: 'media', type 2
> fs/ext2.c:688: got filename: 'sys', type 2
> fs/ext2.c:688: got filename: 'cvs', type 2
> fs/ext2.c:688: got filename: 'proc', type 2
> fs/ext2.c:688: got filename: 'etc', type 2
> fs/ext2.c:688: got filename: 'lib64', type 2
> fs/ext2.c:688: got filename: 'boot', type 2
> fs/ext2.c:651: iterating inode size=0 mode=0x0
> fs/ext2.c:862: grub_fshelp_dir returning: 0
>
> In order to help troubleshoot this, I can apply patches on top of
> current SVN, run fstest & test booting for you. Please note that making
> images of a 3TB drive is not practical and will not reflect the real
> situation to you.
> Sorry, but I am not comfortable offering SSH access to random internet
> strangers.
>
> Regards,
> Tony V.
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/grub-devel
>
--
Regards
Vladimir 'φ-coder/phcoder' Serbinenko
=== modified file 'fs/ext2.c'
--- fs/ext2.c 2010-01-20 08:12:47 +0000
+++ fs/ext2.c 2010-02-24 10:48:31 +0000
@@ -436,7 +436,8 @@
grub_uint32_t indir[blksz / 4];
if (grub_disk_read (data->disk,
- grub_le_to_cpu32 (inode->blocks.indir_block)
+ ((grub_disk_addr_t)
+ grub_le_to_cpu32 (inode->blocks.indir_block))
<< log2_blksz,
0, blksz, indir))
return grub_errno;
@@ -452,13 +453,15 @@
grub_uint32_t indir[blksz / 4];
if (grub_disk_read (data->disk,
- grub_le_to_cpu32 (inode->blocks.double_indir_block)
+ ((grub_disk_addr_t)
+ grub_le_to_cpu32 (inode->blocks.double_indir_block))
<< log2_blksz,
0, blksz, indir))
return grub_errno;
if (grub_disk_read (data->disk,
- grub_le_to_cpu32 (indir[rblock / perblock])
+ ((grub_disk_addr_t)
+ grub_le_to_cpu32 (indir[rblock / perblock]))
<< log2_blksz,
0, blksz, indir))
return grub_errno;
signature.asc
Description: OpenPGP digital signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: ~3TB ext4 volume not read correctly by ext2-fs driver in GRUB2,
Vladimir 'φ-coder/phcoder' Serbinenko <=