All of lore.kernel.org
 help / color / mirror / Atom feed
* ~3TB ext4 volume not read correctly by ext2-fs driver in GRUB2
@ 2009-09-07 19:13 Tony Vroon
  2009-09-12 13:54 ` Tony Vroon
  2010-02-24 10:49 ` Vladimir 'φ-coder/phcoder' Serbinenko
  0 siblings, 2 replies; 3+ messages in thread
From: Tony Vroon @ 2009-09-07 19:13 UTC (permalink / raw)
  To: grub-devel

[-- Attachment #1: Type: text/plain, Size: 3885 bytes --]

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.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: ~3TB ext4 volume not read correctly by ext2-fs driver in GRUB2
  2009-09-07 19:13 ~3TB ext4 volume not read correctly by ext2-fs driver in GRUB2 Tony Vroon
@ 2009-09-12 13:54 ` Tony Vroon
  2010-02-24 10:49 ` Vladimir 'φ-coder/phcoder' Serbinenko
  1 sibling, 0 replies; 3+ messages in thread
From: Tony Vroon @ 2009-09-12 13:54 UTC (permalink / raw)
  To: The development of GRUB 2

[-- Attachment #1: Type: text/plain, Size: 2092 bytes --]

On Mon, 2009-09-07 at 20:13 +0100, Tony Vroon wrote:
> 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)

Specifically, directories with a high inode number (such as boot) are
inaccessible:
chainsaw@prometheus / $ ls -il
total 88
451559425 drwxr-xr-x   2 root     root   4096 2009-09-10 22:49 bin
388333569 drwxr-xr-x   3 root     root   4096 2009-09-02 23:55 boot
425263105 drwxr-xr-x   4 root     root   4096 2009-08-30 16:48 bot
402980865 drwxr-xr-x  20 chainsaw wheel  4096 2009-09-09 21:54 cvs
      126 drwxr-xr-x  16 root     root  13480 2009-09-10 22:27 dev
411828225 drwxr-xr-x  88 root     root   4096 2009-09-12 13:32 etc
303431681 drwxr-xr-x   4 root     root   4096 2009-01-10 13:22 home
    49153 lrwxrwxrwx   1 root     root      5 2009-08-30 07:23 lib ->
lib64
223494145 drwxr-xr-x   3 root     root   4096 2009-08-30 07:23 lib32
412385281 drwxr-xr-x  11 root     root   8192 2009-09-10 22:50 lib64
       11 drwx------   2 root     root  16384 2008-05-30 03:41 lost
+found
308363265 drwxrwxr-x   9 root     wheel  4096 2009-09-10 22:27 media
114933761 drwxr-xr-x   8 root     root   4096 2009-08-16 02:18 mnt
127959041 drwxr-xr-x   8 root     root   4096 2009-08-31 00:01 opt
        1 dr-xr-xr-x 217 root     root      0 2009-09-10 22:26 proc
 48660481 drwx------  18 root     root   4096 2009-09-12 13:55 root
 29343745 drwxr-xr-x   2 root     root   4096 2009-09-10 22:50 sbin
        1 drwxr-xr-x  12 root     root      0 2009-09-10 22:26 sys
307658753 drwxrwxrwt  14 root     root   8192 2009-09-12 13:55 tmp
195330049 drwxr-xr-x  17 root     root   4096 2009-08-30 07:52 usr
163430401 drwxr-xr-x  14 root     root   4096 2009-08-30 02:44 var
chainsaw@prometheus / $ 

Inaccessible directories appear empty but do not provoke any errors
(which is why it breaks Grub2 startup rather badly, I have to change
prefix, insmod normal, normal, etc)

Regards,
Tony V.

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: ~3TB ext4 volume not read correctly by ext2-fs driver in GRUB2
  2009-09-07 19:13 ~3TB ext4 volume not read correctly by ext2-fs driver in GRUB2 Tony Vroon
  2009-09-12 13:54 ` Tony Vroon
@ 2010-02-24 10:49 ` Vladimir 'φ-coder/phcoder' Serbinenko
  1 sibling, 0 replies; 3+ messages in thread
From: Vladimir 'φ-coder/phcoder' Serbinenko @ 2010-02-24 10:49 UTC (permalink / raw)
  To: The development of GRUB 2, tony


[-- Attachment #1.1: Type: text/plain, Size: 4400 bytes --]

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
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel
>   


-- 
Regards
Vladimir 'φ-coder/phcoder' Serbinenko


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: bige2fs.diff --]
[-- Type: text/x-diff; name="bige2fs.diff", Size: 986 bytes --]

=== 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;


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 293 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-02-24 10:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-07 19:13 ~3TB ext4 volume not read correctly by ext2-fs driver in GRUB2 Tony Vroon
2009-09-12 13:54 ` Tony Vroon
2010-02-24 10:49 ` Vladimir 'φ-coder/phcoder' Serbinenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.