Jonas Meurer wrote:
> tags 507721 + help
> thanks
>
> Hello,
>
> I just tried to understand the whole issue. I'll try to describe what I
> got so far, please tell me If i got something wrong:
>
> On 03/12/2008 Christian Jaeger wrote:
>   
>> I did install the system using the capabilities of the Debian
>> installer to create encrypted root partitions and LVM setups, and it
>> worked for some time; probably the first occurrence of the problem was
>> when I already started compiling and installing kernels manually (from
>> kernel.org's Git, using make install and make modules_install),
>> although this too worked upon the first (few?) kernel version(s). And,
>> again, sometimes it still works, like when I installed 2.6.27.5 I
>> could not reproduce the problem. This is also documented on a bug I
>> reported against initramfs-tools, here:
>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=
>>     
>
> Does this mean, that you've chosen 'Guided - use entire disk and setup
> encrypted LVM' at the debian installer partitioner?
>   

No, I didn't choose "entire disk", since I had a couple oem windows
partitions on the new laptop which I wanted to keep (which turned out
not to work (windows didn't boot anymore), but that's another story).

So from what I remember I did:
- choose custom partitioning
- created a handful of partitions (as I always do, on all machines I'm
using lvm on, just create some handy number of partitions which can be
used as physical volumes or whatever later on)
- made of one of these partitions an encrypted one
- made that encrypted one a physical volume
- made out of that physical volume a volume group, named "main"
- created on that volume group swap, and the root partition
- made sda7 /boot (no lvm, no encryption)

This was all from the debian installer.

> And you didn't change that setup except compiling custom kernels, right?
>   

I did:

- create a second volume group named "plain", which is based on multiple
unencrypted sdaX partitions as physical volumes
- on that "plain" volume group, I created a new swap, because I've had
quite terrible latency issues with the encrypted-everything in
combination with nvidia and 2 cores--this is an ongoing search, too;
though going to unencrypted swap didn't help much, and so some time
later I also moved most of the root partition (the whole /usr directory)
to a partition on the "plain" volume group. I've also got a "media"
partition on that group.


>   
>>   --- Logical volume ---
>>   LV Name                /dev/main/root
>>   VG Name                main
>>   LV UUID                M51c6n-rw9j-vKBU-UnIJ-GvXD-nVw0-7yisre
>>   LV Write Access        read/write
>>   LV snapshot status     source of
>>                          /dev/main/root_snap_23nov [INACTIVE]
>>   LV Status              available
>>   # open                 2
>>   LV Size                17.43 GB
>>   Current LE             4462
>>   Segments               2
>>   Allocation             inherit
>>   Read ahead sectors     auto
>>   - currently set to     256
>>   Block device           253:2
>> [...]
>> novo:~# dmsetup ls
>> plain-rootextend-real        (253, 8)
>> main-root    (253, 2)
>> sda8_crypt   (253, 0)
>> plain-gpgbackups     (253, 5)
>> plain-rootextend_snap_23nov-cow      (253, 10)
>> plain-rootextend_snap_23nov  (253, 11)
>> plain-plainswap2     (253, 12)
>> plain-media  (253, 6)
>> main-root_snap_23nov (253, 4)
>> plain-rootextend     (253, 9)
>> plain-plainswap      (253, 7)
>> main-root-real       (253, 1)
>> plain-spdvd  (253, 13)
>> main-root_snap_23nov-cow     (253, 3)
>>     
>
> Ok, that one looks like you've much more dm-crypt mappings than a
> default setup. you do have main-root, main-root-real,
> main-root_snap_23nov and root_snap_23nov.
>   

See the attached _vgdisplay, _fdisk, and _dmsetup_ls files, from:

vgdisplay -v > _vgdisplay
fdisk -l /dev/sda > _fdisk
dmsetup ls > _dmsetup_ls

Something possibly relevant I've just noticed: the device numbers shown
by dmsetup ls seem not to be stable, in the new run they are +-all
different.

>   
>> novo:~# l /dev/dm-0
>> brw-rw---- 1 root disk 253, 0 2008-12-03 21:00 /dev/dm-0
>>
>> thus dm-0 is sda8_crypt
>>
>> novo:~# cat /etc/crypttab 
>> sda8_crypt /dev/sda8 none luks
>> novo:~# 
>>
>> novo:~# cat /etc/fstab |perl -wne 'print if m|\s/\s|'
>> /dev/mapper/main-root /               reiserfs defaults,noatime        0     
>>   1
>> novo:~# 
>>     
>
> ok, you use main-root as rootfs, and main-root depends on main-root-real,
> which itself depends on sda8_crypt, correct?
>   

I've never told any tool anything about main-root-real; my guess is that
it is used by the device mapper as some helper thing because I did
create a snapshot of main-root. This is confirmed now that I did
"lvremove /dev/main/root_snap_23nov":

novo:~# diff -u _dmsetup_ls _dmsetup_ls2
--- _dmsetup_ls 2008-12-16 01:38:33.000000000 +0100
+++ _dmsetup_ls2        2008-12-16 01:53:18.000000000 +0100
@@ -6,9 +6,6 @@
 plain-rootextend_snap_23nov    (253, 6)
 plain-plainswap2       (253, 7)
 plain-media    (253, 1)
-main-root_snap_23nov   (253, 13)
 plain-rootextend       (253, 4)
 plain-plainswap        (253, 2)
-main-root-real (253, 10)
-main-root_snap_23nov-cow       (253, 12)
 plain-spdvd    (253, 8)



> is this the reason why your LVM over dm-crypt setup has one more level
> than the usual setups?
>   

So the answer is no, right?

Except if the initrd scripts cannot deal with snapshots, maybe ?

Does creating a snapshot really make the main-root device appear as
having an additional level inbetween for the initrd scripts?

> Could you try to explain what the reason is why your setup fails while
> others work? 

No of course not or I would have long told you.

> and if the missing recursion of get_lvm_deps() is really
> the reason, why does it only fail on some kernels for you?

As I did say in my previous mails, I don't know.

And I don't know whether it's got anything to do with kernels. Or the
order in which something is initialized at boot, or the phase of moon,
or maybe whether I've got snapshots running.

>  I'm not
> confident that you tracked the real bug. 

Well, I'm confident that I've tracked the code at the place where the
bug manifests itself correctly in the sense of "I could 100% confirm
that if I make it recurse it sees the crypto stuff and will get me the
crypto stuff into the initrd, whereas if I don't make it recurse the
crypto file will be missing".

What I don't know about is this sort of code duplication for copying
kernel object files; why is it there, is it bad that my code calls,
because it's having an unexpected crypt/non-crypt (which one was it?)
argument at that place, the sort-of copied code with an unexpected
argument--but if it the object file copying code would be unified,
wouldn't it be clean?

> And as David Härdeman, the one
> who wrote all the cryptroot initramfs scripts, isn't available
> currently, i hesitate to apply your patch.
>   

Well, hard decision; I wouldn't want to apply it without review that
late in the Debian release cycle either, but then it may bite quite a
number of people, too, so, maybe possibly there is a middle ground? Like
how about providing the patched script as an alternative and mention in
the docs where it is? And certainly leave these bug reports open as long
as they are not really resolved; as I did my first search and report on
initramfs, could maybe the archived bug there be made found again?

Christian.

  --- Volume group ---
  VG Name               main
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  35
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               18.62 GB
  PE Size               4.00 MB
  Total PE              4767
  Alloc PE / Size       4718 / 18.43 GB
  Free  PE / Size       49 / 196.00 MB
  VG UUID               W5Hqed-zQba-aRdc-sAsc-XF2K-G0AM-xjJd8k
   
  --- Logical volume ---
  LV Name                /dev/main/root
  VG Name                main
  LV UUID                M51c6n-rw9j-vKBU-UnIJ-GvXD-nVw0-7yisre
  LV Write Access        read/write
  LV snapshot status     source of
                         /dev/main/root_snap_23nov [INACTIVE]
  LV Status              available
  # open                 2
  LV Size                17.43 GB
  Current LE             4462
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:11
   
  --- Logical volume ---
  LV Name                /dev/main/root_snap_23nov
  VG Name                main
  LV UUID                5m5J20-JSZY-fa4r-cgWd-rcib-KBWI-ChUYtK
  LV Write Access        read/write
  LV snapshot status     INACTIVE destination for /dev/main/root
  LV Status              available
  # open                 0
  LV Size                17.43 GB
  Current LE             4462
  COW-table size         1.00 GB
  COW-table LE           256
  Snapshot chunk size    4.00 KB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:13
   
  --- Physical volumes ---
  PV Name               /dev/dm-9     
  PV UUID               16lgMw-dDfK-BlUw-lWLE-ZIxl-Kcxh-2YRFhP
  PV Status             allocatable
  Total PE / Free PE    4767 / 49
   
  --- Volume group ---
  VG Name               plain
  System ID             
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  49
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                7
  Open LV               3
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               107.09 GB
  PE Size               4.00 MB
  Total PE              27415
  Alloc PE / Size       27159 / 106.09 GB
  Free  PE / Size       256 / 1.00 GB
  VG UUID               Ypp8Lx-Kms7-8RpD-rmeH-FvJx-uBmF-9el18I
   
  --- Logical volume ---
  LV Name                /dev/plain/gpgbackups
  VG Name                plain
  LV UUID                BHk28n-2Y83-oazR-NFdA-vcBJ-dbjJ-8zWwKR
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                45.00 GB
  Current LE             11520
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Name                /dev/plain/media
  VG Name                plain
  LV UUID                nP6Bg9-Hgbw-dvFv-wr04-XYiU-aRQe-9x4K47
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                32.00 GB
  Current LE             8192
  Segments               10
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
  --- Logical volume ---
  LV Name                /dev/plain/plainswap
  VG Name                plain
  LV UUID                Vg3DdO-7nXi-GKBO-g5he-Vq2x-xexZ-tZJf1I
  LV Write Access        read/write
  LV Status              available
  # open                 2
  LV Size                4.00 GB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
   
  --- Logical volume ---
  LV Name                /dev/plain/rootextend
  VG Name                plain
  LV UUID                cI0k1y-tdxM-KcLL-b6Gw-7E4j-Lbbi-9JqEYN
  LV Write Access        read/write
  LV snapshot status     source of
                         /dev/plain/rootextend_snap_23nov [active]
  LV Status              available
  # open                 2
  LV Size                12.49 GB
  Current LE             3197
  Segments               5
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:4
   
  --- Logical volume ---
  LV Name                /dev/plain/plainswap2
  VG Name                plain
  LV UUID                H5eCgL-cwyk-KMmt-up2X-TmF2-vLfz-HfbnxN
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                4.00 GB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:7
   
  --- Logical volume ---
  LV Name                /dev/plain/spdvd
  VG Name                plain
  LV UUID                dgDEbm-WghB-rUUZ-inh5-fpi7-cOLR-c0gCPy
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                4.60 GB
  Current LE             1178
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:8
   
  --- Logical volume ---
  LV Name                /dev/plain/rootextend_snap_23nov
  VG Name                plain
  LV UUID                Jvomj6-aLAt-sahH-TJB2-frQR-0EZH-2vO9v2
  LV Write Access        read/write
  LV snapshot status     active destination for /dev/plain/rootextend
  LV Status              available
  # open                 0
  LV Size                12.49 GB
  Current LE             3197
  COW-table size         4.00 GB
  COW-table LE           1024
  Allocated to snapshot  24.95% 
  Snapshot chunk size    4.00 KB
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:6
   
  --- Physical volumes ---
  PV Name               /dev/sda12     
  PV UUID               0joLcE-bvH3-oft7-q58t-9Lu3-SIy6-PIiP7D
  PV Status             allocatable
  Total PE / Free PE    7152 / 0
   
  PV Name               /dev/sda13     
  PV UUID               1cfDDT-glhc-f8uU-CPMT-Z0hb-SwTa-woQfwK
  PV Status             allocatable
  Total PE / Free PE    7152 / 256
   
  PV Name               /dev/sda10     
  PV UUID               juQbmw-c5NE-Q4D1-IGEf-y6l6-NTS0-VurSwb
  PV Status             allocatable
  Total PE / Free PE    7152 / 0
   
  PV Name               /dev/sda6     
  PV UUID               mLDOzL-9VYT-Waa8-Zoed-QtGq-RLgS-872Sos
  PV Status             allocatable
  Total PE / Free PE    5959 / 0
   
Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x5d15d97d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         592     4749312    7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2             593        1200     4876200   83  Linux
Partition 2 does not end on cylinder boundary.
/dev/sda3            1200       30401   234564120    5  Extended
Partition 3 does not end on cylinder boundary.
/dev/sda5            1200        4117    23435968+  83  Linux
/dev/sda6            4117        7156    24411208+  83  Linux
/dev/sda7            7156        7181      196528+  83  Linux
/dev/sda8            7181        9612    19527448+  83  Linux
/dev/sda9            9612       13259    29294968+  83  Linux
/dev/sda10          13259       16906    29294968+  83  Linux
/dev/sda11          16906       20553    29294968+  83  Linux
/dev/sda12          20553       24200    29294968+  83  Linux
/dev/sda13          24200       27847    29294968+  83  Linux
/dev/sda14          27847       30401    20517808+  83  Linux
plain-rootextend-real   (253, 3)
main-root       (253, 11)
sda8_crypt      (253, 9)
plain-gpgbackups        (253, 0)
plain-rootextend_snap_23nov-cow (253, 5)
plain-rootextend_snap_23nov     (253, 6)
plain-plainswap2        (253, 7)
plain-media     (253, 1)
main-root_snap_23nov    (253, 13)
plain-rootextend        (253, 4)
plain-plainswap (253, 2)
main-root-real  (253, 10)
main-root_snap_23nov-cow        (253, 12)
plain-spdvd     (253, 8)

Reply via email to