# kernel panic with encrypted disk

## frddbbbl

Hi, i have been following the gentoo wiki's guide to encrypting my full drive. instead of doing it as a fresh install i mounted a stage4 tar ball on to the disk once i had encrypted it. I followed the guide and edited /etc/default/grub before re-installing and mkconfing grub. i get the error on start up

```

[    2.112414] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,4)

```

I have created an initramfs with genkernel (which grub says it can see when i mkconfig), however my kernel was configured manually, but i have made sure it has all the nessicary elements compiled into it for an initramfs and lvm and luks to work properly. I am also using libreboot as my bios. please let me know if anymore information is required to help.

Cheers,

Freddie.

----------

## alamahant

Hi

in 

/etc/default/grub

```

GRUB_CMDLINE_LINUX="cryptdevice=UUID=xxxxxxxxxxx:encrypted-volume-name root=/dev/mapper/<root-lv> rootfstype=<>"

```

Then

```

emerge -av dracut

USE="initramfs" emerge -av gentoo-kernel-bin

grub-mkconfig -o /boot/grub/grub.cfg

rc-update add lvm2 boot

rc-update add dmcrypt boot

```

Many many things  might be missing from your kernel.

Is it lvm on luks?

 *Quote:*   

> 
> 
> instead of doing it as a fresh install i mounted a stage4 tar ball on to the disk once i had encrypted it. 
> 
> 

 

can you plz elaborate a bit?

----------

## frddbbbl

 *alamahant wrote:*   

> Hi
> 
> in 
> 
> /etc/default/grub
> ...

 

Hi, i will try what you said above, your saying i should use dracut instead of gen kernel? and what is gentoo-kernel-bin for? in the guide it told me to add lvm not lvm2 to rc and didn't mention adding decrypt. Will report back when i've gone through those steps! yes it is lvm on looks. what i meant by the last bit is that the guide was aimed towards people installing gentoo, where as i am restoring it from a backup of my current system if that makes more sense.

edit: just editing /etc/default/grub and wanted to confirm by :encrypted-volume-name you mean the partition, so for me it would be UUID=xxxxxx:/dev/sda4. and i also wanted to confirm i should leave the rootfstype blank and not put in ext4 which is what i set it as?

Cheers,

Freddie

----------

## frddbbbl

So when i try to emerge gentooi-kernel-bin it says the kernel failed to install and i should fix the problem before trying again, not sure what the issue could be? i have the install kernel-gentoo pkg installed. I also can't find the build log in /var/tmp/portage, the directory is empty other than ._unmerge_.

eselect kernel list shows i have a kernel available that i didn't before to select, linux-5.10.52-gentoo-dist.

----------

## alamahant

Yes dracut is a super sweet initrd tool.

Works well for encryption.

I suppose genkernel also.

But i know dracut better.

gentoo-kernel-bin is a FULL precompiled binary kernel like the ones available in all linux distros.

The reason you are having problem emerging it is

virtual/dist-kernel

whoose ebuild contains

```

RDEPEND="

   || (

      ~sys-kernel/gentoo-kernel-${PV}

      ~sys-kernel/gentoo-kernel-bin-${PV}

      ~sys-kernel/vanilla-kernel-${PV}

   )"

```

This mean you will first need to unmerge gentoo-kernel before installing the -bin version.

Which kernel did you emerge?

gentoo-kernel or gentoo-sources?

If the second you shouldnt be getting any error when trying to emerge gentoo-kernel-bin.

When you run 

cryptsetup luksOpen /dev/<encrypted> <encrypted-volume-name>

This <encrypted-volume-name> you should use in /etc/default/grub

In case of lvm on luks you should create a pv on top of this.

pvcreate /dev/mapper/<encrypted-volume-name>

Then proceed with volume group and logical volume etc.

You can use any name you like.

ie

cryptdevice=UUID=xxxxxxxxxxx:<encrypted-volume-name> root=/dev/<vg>/<root-lv>........................etc etc"

My Mistake.

The name of the service is lvm not lvm2.

You definitely need also dmcrypt enabled @boot.

 *Quote:*   

> 
> 
> and i also wanted to confirm i should leave the rootfstype blank and not put in ext4 which is what i set it as?
> 
> 

 

no plz substitute "<>" for "ext4"

Is your system lvm on luks??

Or plain luks?

----------

## frddbbbl

So if i used the command 

```
cryptsetup luksOpen /dev/sda4 lvm
```

the volume name is lvm? the volumes i have created on top of this are vg0-root vg0-var and vg0-home, all of these should be listed in the grub file? and the path root=/dev/<vg>/<root-lv>, would this be the same as /dev/mapper/vg0-root?

----------

## frddbbbl

I still get the same error installing the kernel, i didn't have gentoo-kernel installed and have unmarked genkernel, i get the error saying that it was copied to the disk successfully but not able to be deployed? It says also :

```

The specific snippet of code:

        die"Kernel install failed, please fix the problem and run emerge --config ${CATEGORY/${PN}:${SLOT}";

```

----------

## alamahant

 *Quote:*   

> 
> 
> So if i used the command
> 
> Code:
> ...

 

Ok so you should have run something like this

```

cryptsetup luksOpen /dev/sda4 lvm

pvcreate /dev/mapper/lvm

vgcreate vg0 /dev/mapper/lvm

lvcreate -n root -L <size> vg0

```

Then in /etc/default/grub

```

cryptdevice=UUID=<uuid-of /dev/sda4>:lvm  root=/dev/vg0/root rootfstype=ext4"

```

I hope the /etc/fstab is also correctly edited to contain the logical volumes.

You are very near.

You just need to install the full binary kernel and let dracut create an initrd for it.

I dont know why you cant install it.

It seems odd.

Can you plz post the full error message?

ONE CAVEAT: you need a separate /boot partition to contain the kernels and intirds.

it should NEITHER be encrypted NOR on lvm.

Is this true for your setup?

----------

## frddbbbl

Hi, this is a pain, i am currently updating @world to see if any of the issues installing the kernel are fixed by updated dependencies. Thanks that description makes a lot more sense. I have the correct UUID's in my Fstab for /boot (which is a separate non encrypted partition), my unencrypted swap, my root partition, my var partition and my home partition. does this sound like everything i need is there? any ideas of how i can show you the full error message? for some reason the build.log does not exist in /var/tmp/portage, and i can't scroll up in the terminal.

Cheers,

Freddie

----------

## alamahant

is /var/tmp/portage on tmpfs?

What does 

```

mount | grep var

```

say?

You can scroll in terminal via

```

SHIFT +pgup/pgdn

```

----------

## frddbbbl

```

mount | grep var

```

returns

/dev/mapper/vg0-var on /var type ext4 (rw,relatime)

and i think the tmp folder is temps because it is white text on a blue background which none of the other folders in / var are, and /tmp is on a temps and looks the same. i definitely can't scroll with anything, i'm just in the standard terminal from the lived and none of the combinations of pg up/down plus monkey have worked.

----------

## NeddySeagoon

frddbbbl,

A kernel panic mounting root rules out the content of the root filesystem as it can't be read until it's mounted.

That only leaves the kernel, the kernel command line and the initrd.

Errors in other files will only appear after root is mounted and these other files are being used.

The boot sequence is 

1. Something loads grub. (The something doesn't matter)

2. Grub draws its menu and you choose an option

3. Grub loads the kernel and optionally, the initrd and leaves the kernel command line for the kernel to find.

4. Grub exits by jumping to the kernel start address.

5. The kernel decompresses itself and mounts the initrd as its root filesystem then executes the init script there.

At this time, there is only the kernel and initrd.

6. The init script decrypts your /dev/sda4, starts the logical volume manager and mounts the root filesystem given on the kernel command line.

That's a top level overview. There is a lot more I've skipped over.

Your error is detected at step 6.

-- edit --

Console scrolling support was removed from the kernel around 5.10.

-- edit --

```
[    2.112414] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,4) 
```

unknown-block(8,4) is /dev/sda4. That's your encrypted container, not your root filesystem so that correct.

Your root is /dew/mapper/<something> but only after /dev/sda4 has been decrypted and lvm started.

----------

## frddbbbl

i have here the build.log of gentoo-kernel-binary, i think the only issue it is pointing out is that i need to select it as kernel? but i guess i don't need to do this and i can use my personal kernel? should i reset my laptop now i have the correct options in my /etc/default/grub?[/url]

----------

## alamahant

Try

```

rm /usr/src/linux

emerge -1av gentoo-kernel-bin

######or just create a symlink "linux" to gentoo-kernel-bin

### cd /usr/src

#### ln -s 5.10.52-gentoo-dist linux

```

This is a harmless and foolish error message

see

 *Quote:*   

> 
> 
>  FAILED postinst: 1
> 
>  * /usr/src/linux points at another kernel, leaving it as-is.
> ...

 

You already have gentoo-kernel-bin installed.

Just look under /usr/src and you will see the kernel tree

Also 

ls /lib/modules

ls /boot

Its there no?

It complains about /usr/src/linux pointing to another kernel.

Foolish complain.

BUT plz know that /usr/src/linux is a symlink pointing to your current kernel.

If you install a new kernel you should remove the above symlink and re link it to the new kernel instead.

You can avoid all this manual work by using

eselect kernel

I suppose

I have never used it myself

Just reboot now.

You have your huge kernel which also built an initrd with dracut as i saw in your log so now

```

grub-mkconfig -o /boot/grub/grub.cfg

reboot

```

----------

## NeddySeagoon

frddbbbl,

```
 * Installing the kernel via installkernel ...

cat: write error: No space left on device

 [ !! ]

 * Installing the kernel failed

 * 

 * The kernel files were copied to disk successfully but the kernel

 * was not deployed successfully.  Once you resolve the problems,

 * please run the equivalent of the following command to try again:
```

That probably means that /boot is full and you need to delete things before you can add more.

----------

## frddbbbl

here is the output that grub-mkconfig gives me now that i have set the kernel to linux-5.10.52-gentoo-dist. I'm not sure if this is an error in my /etc/default/grub? i do feel like i am making progress....

Thanks for all the help so far.

----------

## NeddySeagoon

frddbbbl,

There is no space on /boot to write the grub.cfg.

Post the output of 

```
df -ih

df -h

ls -l /boot
```

----------

## alamahant

Plz heed to Neddy's advice about space in /boot.

It is critical!

Then this is also very worrisome

 *Quote:*   

> 
> 
> Volume group "lvm" not found
> 
>   Cannot process volume group lvm
> ...

 

You need to enable and start "lvm" service.

What happens if in livecd(ourside chroot) you run

/etc/init.d/lvm start

vgscan

lvscan

Then in chroot

USE="device-mapper" emerge -1av grub

and rerun grub update

?

----------

## frddbbbl

there should be space now that i have deleted the old configs and system maps from /boot. lvm is already running, vgscan and lvscan give a warning "failed to connect to lvmetad. Falling back to device scanning but there is no error message? it also says found linux image/boot/vmlinuz-5.10.27, which is not the binary kernel in spite of the back that is the one that is symlinked to /usr/src/linux, is there a reason it won't build a boot config for 5.10.52-gentoo-dist?

----------

## NeddySeagoon

alamahant,

I'm hoping that comes out in the wash with the new kernel and grub.cfg.

Consider the situation where the last attempt to make grub.cfg failed due to /boot being full.

The old one is still in use, so an old kernel is too.

Lets get a know self consistent set of files in use before we proceed.

Certainly getting LVM started is required but baby steps. 

Once there is space on /boot we can have a self consistent kernel, initrd and grub.cfg and reassess  what the next problem is.

----------

## NeddySeagoon

frddbbbl,

Post the information I asked for.

Once we are sure you have enough space, the next stop in to reinstall the new kernel and initrd to /boot and make it a new grub.cfg, so that they are used.

The binary kernel is not there now as /boot was full when you tried to install it.

----------

## frddbbbl

 *NeddySeagoon wrote:*   

> frddbbbl,
> 
> Post the information I asked for.
> 
> Once we are sure you have enough space, the next stop in to reinstall the new kernel and initrd to /boot and make it a new grub.cfg, so that they are used.
> ...

 

Ok, here you go:

http://0x0.st/-JYr.log

http://0x0.st/-JYs.log

http://0x0.st/-JYz.log

----------

## NeddySeagoon

frddbbbl,

Do you have a separate /boot partition?

```
Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/vg0-root   20G   18G  1.5G  93% /

/dev/mapper/vg0-var   9.8G  1.7G  7.6G  19% /var

/dev/mapper/vg0-home   79G   13G   63G  17% /home

cgroup_root            10M     0   10M   0% /sys/fs/cgroup

udev                   10M     0   10M   0% /dev

tmpfs                 1.9G     0  1.9G   0% /dev/shm
```

Its not listed there, so its not mounted.

```
-rw-r--r-- 1 root root  124591 Aug  7 11:14 config-5.10.27-gentoo

drwxr-xr-x 5 root root    4096 Aug 12 22:29 grub

drwx------ 2 root root    4096 Aug  7 11:14 lost+found

-rw-r--r-- 1 root root 5243599 Aug  7 11:14 System.map-5.10.27-gentoo

-rw-r--r-- 1 root root 9455312 Aug  7 11:14 vmlinuz-5.10.27-gentoo
```

looks like /boot but its missing an initrd.

With an encrypted root, an initrd is required. It must contain all the user space tools to decrypt the LUKS valume and start the logical volume manager so that the kernel can see  /dev/mapper/vg0-root.

Install the kernel, initrd and remake grub.cfg. Watch for No Space on Device errors. If you don't get any, reboot to test.

----------

## frddbbbl

Hi, can't believe i forgot to mount /boot that time... i mounted /dev/sda2 on /boot and did everything again, however i still can't see the binary as an option in the bios, there also is a few old 5.4 kernels that are options that have been removed from /boot but still seem to appear in the bios

----------

## alamahant

I dont know why it is so hard for your system to boot.

I suspect you have content underneath the mounted /boot

First

make sure you have an entry for /dev/sda2 in /etc/fstab

```

/dev/sda2  /boot       vfat    defaults      0       1

```

then plz

Run

```

umount /boot

rm -rf /boot/*

mount /boot

```

Then

```

mount /boot

grub-install .................................... REINSTALL grub

cd /usr/src/5.10.52-gentoo-dist

make install

cd ..

rm linux

ln -s 5.10.52-gentoo-dist linux

dracut --force --kver 5.10.52-gentoo-dist

grub-mkconfig -o /boot/grub/grub.cfg

```

Also plz post the output of

```

ls -R /boot

```

I also suspect you forget to mount things when chrooting.

So plz create a chroot script to always use when chrooting and have a complete fstab so after chrooting you can run

mount -a 

and have everything mounted properly.

Can you plz post your fstab?

 :Smile: 

----------

## frddbbbl

http://0x0.st/-JUY.log

output of ls -R /boot above.

there were files in /boot before i mounted /dev/sda2 which i deleted earlier today. 

just rebooted and its (almost working!) it seems to freeze after seeing my sdc removable device

----------

## frddbbbl

 *frddbbbl wrote:*   

> http://0x0.st/-JUY.log
> 
> output of ls -R /boot above.
> 
> there were files in /boot before i mounted /dev/sda2 which i deleted earlier today. 
> ...

 

it then spits out 67.864565 random: cringe init done

4 urandom warnings missed due to retaliating

----------

## alamahant

Ah ok I though this was an uefi boot.

So plz modify your /boot entry in fstab to reflect your non uefi setup.

Did you see the binary kernel 5-10-52 in grub menu when booting?

Did it ask you for the luks password?

NO because you do NOT have a grub.cfg in /boot

you only have a 

```

libreboot_grub.cfg

```

What kind of setup do you have?

Plz do NOT use exotic setups UNTIL you are first able to boot with plain grub.

 *Quote:*   

> 
> 
> I am also using libreboot as my bios.
> 
> 

 

plz DONT.your setup is enough complicated as it is without adding an extra layer of complexity.

----------

## NeddySeagoon

frddbbbl,

The are two places on your system called boot.

One is the boot directory on the root filesystem written as /boot.

The other is the boot partition, mounted at /boot when you want to use it.

Its not an error to put things into  /boot when the boot partition is not mounted but grub won't see them.

Grub has to make its own arrangements to read the HDD, as the kernel is not loaded and the filesystem tree does not exist when it runs.

Looking at your ls -R /boot.

```
/boot/lost+found:
```

 Good. only the top level directory of a partition has a lost+found

```
/boot:

config-5.10.27-gentoo

config-5.10.52-gentoo-dist

grub

initramfs-5.10.52-gentoo-dist.img

lost+found

System.map-5.10.27-gentoo

System.map-5.10.52-gentoo-dist

vmlinuz-5.10.27-gentoo

vmlinuz-5.10.52-gentoo-dist
```

Your vmlinuz-5.10.27-gentoo cannot boot. It has no matching initramfs. Be careful not to choose it from the from menu.

If grub displays its menu, I don't understand how as you have no /boot/grub/grub.cfg but somehow a kernel gets loaded and fails to mount root.

Are you actually using grub or do you have an EFI stub kernel booting directly from the firmware?

----------

## frddbbbl

 *NeddySeagoon wrote:*   

> frddbbbl,
> 
> The are two places on your system called boot.
> 
> One is the boot directory on the root filesystem written as /boot.
> ...

 

To try and answer both of the questions that you both have asked, i cannot not NOT use libreboot as that is what my laptop had as its bios when i bought it. i am booting from 5.10.52, 5.10.27 does not have an initramfs as it is the kernel i configured and used before i started this post, but i am now booting from 5.10.52. I believe i am using grub as that is what i configured when i first installed gentoo, i have always used grub as the boot loader as i believe my x200 does not support uefi. to continue the error message i mentioned in my last post, after the crng init done and d4 random warning... the kernel says:

```

[    204.386164]dracut warning:could not boot

dracut warning: could not boot

[    204.403588]dracut warning: /dev/mapper/vg0-root does not exist

generating "run/initramfs/rdspreport.txt"

```

and then talks about where i should save the bug report and drops me into the debug shell. I am very sorry for how confusing my setup is.... I was under the impression that libreboot_grub.cfg was the same thing as grub.cfg but just named differently so the libretto bios recognises it? when i first installed gentoo i had issues starting it until i grub-mkconfig -o /boot/grub/libreboot_grub.cfg as libreboot did not recognise grub.cfg. Sorry if i am wrong. I also just want to thank you guys for all your help so far.

Cheers,

FreddieLast edited by frddbbbl on Fri Aug 13, 2021 11:39 pm; edited 1 time in total

----------

## NeddySeagoon

frddbbbl,

```
[    204.403588]dracut warning: /dev/mapper/vg0-root does not exist 
```

Tells that either the LUKS unlock step or the lvm starting failed, or maybe both.

As its into the initrd init script by that time, or should be, any failures should offer you a shell.

Does that happen?

If not, I suspect that the initrd is not being used.

Once you can get into the shell after a boot failure, you can have a look round to see what's missing and determine where it failed.

e.g. Does /dev/mapper/ exist and what does it contain?

What does 

```
vgchange -ay
```

say.?

It tries to start all the logical volumes. If the decrypt step failed, it will fail too.

Can you give the decpypt command by hand?

I don't know it as I don't use it.

The 

```
crng init done
```

message is the kernel doing things in other threads. Its expected.

----------

## frddbbbl

 *NeddySeagoon wrote:*   

> frddbbbl,
> 
> ```
> [    204.403588]dracut warning: /dev/mapper/vg0-root does not exist 
> ```
> ...

 

after the warning ends i end up in a dracut shell. i am in the initrd i imagine? vgchange -ay isn't an option from the shell, it is very limited. I was however able to manually unlock the drive from the shell with cryptSetup luksOpen lvm, does this mean it is likely a configuration problem as it was looking for /dev/mapper/vg0-root before it has been able to unlock the partition?

----------

## alamahant

 *Quote:*   

> 
> 
> I was however able to manually unlock the drive from the shell with cryptSetup luksOpen lvm, does this mean it is likely a configuration problem as it was looking for /dev/mapper/vg0-root before it has been able to unlock the partition?
> 
> 

 

if you unlocked it you are good to go.

Just type exit or ctrl+D or ctrl+X to resume booting and see if you boot.

The moment of truth!

Is your grub the Gentoo grub or libretool provided?

Did you add

```

GRUB_PRELOAD_MODULES="luks lvm"

```

in /etc/default/grub?

Did you enable dmcrypt and lvm services?

Also maybe create an entry in /etc/crypttab like this

```

echo "lvm   /dev/sda4" >> /etc/crypttab

```

Better if you replace /dev/sda4 with /dev/disk/by-partuuid/<PARTUUID-of-/dev/sda4>

Perhaps dracut needs it.

 :Smile: 

----------

## NeddySeagoon

alamahant,

/dev/disk/by-* is a set of udev created symbolic links.

The may not have been created when you try to use them in early boot. They may not be in the initrd ever.

frddbbbl,

```
/sbin/vgchange -ay
```

has to work but the volume group header is inside the LUKS container, so is encrypted until the container is unlocked.

vgchange is not a shell command. Its a user space tool that is included in the initrd.

If vgchange fails, its because the LUKS container is not yet unlocked.

Its OK for it to fail, for you to unlock the container, then for it to work.

That demonstrates that the step that fails is the unlocking the container.

----------

## frddbbbl

 *alamahant wrote:*   

>  *Quote:*   
> 
> I was however able to manually unlock the drive from the shell with cryptSetup luksOpen lvm, does this mean it is likely a configuration problem as it was looking for /dev/mapper/vg0-root before it has been able to unlock the partition?
> 
>  
> ...

 

Fist time actually booting not from a liveUSB this week! thanks so much guys. I did not haveGRUB_PRELOAD_MODULES="luks lvm" in my config it has been added now and will test on reboot. There isn't a crypttab in /etc/ ? dmcrypyt and lvm servies are enabled.

The one other question i have is how easy it would be to swich back to my user configured kernel? obviously i would prefer this over using the binary kernel but i'm not sure if there were a lot of settings i missed when i tried to configure it last time? i enabled all the flags the wiki said dmcrypt and lvm required. 

Also before i wrote this post i was following the wiki, which seemed to have a few missing bits, maybe i could go through and add them or possibly also link to this post as an external resource?

my grub is the normal grub, libreboot is simply an opensource replacement for the firmware bios supplied with the computer (i think)

Cheers,

Freddie

----------

## NeddySeagoon

frddbbbl,

Booting with root on an encrypted volume requires two things.

1. Kernel support

2. An initrd with the user space tools required to make the real root filesystem available.

You need both pieces.

When you use dracut or genkernel to do the builds, the distinction between what is kernel and what is initrd gets a bit blurred.

That's because the build tools make a fully modular kernel and put the modules into the initrd, so the two have to be updated together.

It need not be that that way. All the kernel options needed to boot can be built into the kernel.

The initrd then only needs to contain user space tools. No bits of kernel.

My root is in LVM on raid5, no encryption, but it still needs an initrd for the same reason your install does.

I made my initrd in 2009, when the system was new. As it does not contain any kernel bits, there is no need to updalt it.

That's a long winded way of saying yes but ...

You can build your own kernel and your own initrd and leave all the black magic behind.

You can still have kernel modules but they won't be loaded until after root is mounted.

For completeness, you can also make your own kernel and have the tools make just the initrd.

I'm not sure if you can keep the kernel modules out of the initrd that way.

----------

## alamahant

 *Quote:*   

> 
> 
> my grub is the normal grub, libreboot is simply an opensource replacement for the firmware bios supplied with the computer (i think)
> 
> 

 

Ok perfect.Just to err on the side of caution you can

```

USE="device-mapper" emerge -1av grub

```

If it helps plz make it permanent via package.use

 *Quote:*   

> 
> 
> dmcrypyt and lvm servies are enabled.
> 
> 

 

in boot runlevel?

----------

## frddbbbl

 *alamahant wrote:*   

>  *Quote:*   
> 
> my grub is the normal grub, libreboot is simply an opensource replacement for the firmware bios supplied with the computer (i think)
> 
>  
> ...

 

Thanks for double checking with me! dmcrypt wasn't added at boot level, i have a massive update emerging at the moment, when it's finished i will update grub like you said and config it and restart.

Cheers,

Freddie

----------

## frddbbbl

I still have the issue of having to manually open it through the dracut shell. Not really an issue to be honest though. The initramfs takes a very long time to load and my laptop has felt a fair bit slower since i changed to the binary kernel, it is very old. I was wondering how i can make sure i have all the correct modules built into my custom kernel will it just be the ones mentioned on the wiki pages for initramfs, lvm and dmcrypt? on the wiki it seems that i can also make a dracut initramfs without modules, would this work fine? if not should i try a different method of making one? thanks for all the help so far, it has been incredibly usefull.

Cheers,

Freddie

----------

## frddbbbl

are there any guides that might be helpfull?

----------

