Bug#516347: debian-installer: guided-with-lvm no longer allows multiple primary partition
Yup, this is biting me too... Sorry for the long stream-of-conscious report here, but I wrote as I worked through this issue and it shows. ;) I don't know what someone may find important or not. It's an odd bug though. When I create a small /boot partition as the first item in the recipe, it rolls right along. d-i partman-auto/expert_recipe string mydisk :: \ 64 300 300 ext3 \ $primary{ } $bootable{ } \ method{ format } format{ }\ use_filesystem{ } filesystem{ ext3 } \ options/noatime{ noatime }\ label{ boot } \ mountpoint{ /boot } \ . \ 1 1 7 ext3 \ $lvmok{ } \ method{ format } format{ }\ use_filesystem{ } filesystem{ ext3 } \ options/noatime{ noatime }\ mountpoint{ / } \ . \ 512 1024 300% linux-swap\ $lvmok{ } \ method{ swap } format{ } \ . \ 500 1 10 ext3 \ $lvmok{ } \ method{ format } format{ }\ use_filesystem{ } filesystem{ ext3 } \ options/noatime{ noatime }\ mountpoint{ /home } \ . But if I remove the small boot partition and move root to the first primary partition it fails. d-i partman-auto/expert_recipe string mydisk :: \ 1 1 7 ext3 \ $primary{ } $bootable{ } \ method{ format } format{ }\ use_filesystem{ } filesystem{ ext3 } \ options/noatime{ noatime }\ mountpoint{ / } \ . \ 512 1024 300% linux-swap\ $lvmok{ } \ method{ swap } format{ } \ . \ 500 1 10 ext3 \ $lvmok{ } \ method{ format } format{ }\ use_filesystem{ } filesystem{ ext3 } \ options/noatime{ noatime }\ mountpoint{ /home } \ . The failure from the partman logs: /bin/autopartition-lvm: IN: /bin/autopartition-lvm: IN: boot parted_server: Processing flag boot parted_server: The flag set true. /bin/autopartition-lvm: IN: NO_MORE parted_server: Closing infifo and outfifo parted_server: main_loop: iteration 40 parted_server: Opening infifo /bin/autopartition-lvm: IN: NEW_PARTITION =dev=hda primary ext3 10001940480-60011642879 beginning 5001101 parted_server: Read command: NEW_PARTITION parted_server: command_new_partition() parted_server: Note =dev=hda as changed parted_server: Opening outfifo parted_server: requested partition with type primary parted_server: requested partition with file system ext3 parted_server: add_primary_partition(disk(117210240),19535040-117212774) parted_server: OUT: Error Obviously a disk with 117210240 sectors isn't going to allow a partition ending at sector 117212774. I've been tracing through the code to try and determine where the sectors and sizes are calculated with limited success. The modular partman-* package structure makes it somewhat difficult to track down. Well, in some cases it looks like the autopartition-lvm is passing around incorrect values for partition sizes and offsets. For example, my failure case passes the following parameters to parted-server's command_new_partition() function. /home parameters: typefs_type range_start-range_end position length primary ext310001940480-60011642879 beginning 5001101 Note that since this partition is being calculated from the beginning, the range_end is really just the end of the disk. If you add 10001940480 (range_start) + 5001101 (length) you get 60012940481 bytes which is larger than the total size of the disk of 60011642879 bytes. Note how parted_server.c converts the sizes to disk sectors in the logs: part_start = 19535040 part_end = 117212774 <--- more sectors than the disk has The formula used in parted_server.c for calculating the part_end value is: 1824: part_start = range_start / PED_SECTOR_SIZE_DEFAULT; 1825: part_end = (range_start + length) / PED_SECTOR_SIZE_DEFAULT; So if there is a bounds check just after this code to keep the part_end value at less than the range_end it should work (see attached patch). I'll dig some more in the partman-auto-lvm package and see if the calculations are borked there.
Bug#533528: Incorrect permissions set on /dev/null
Package: debian-installer Version: 20090123lenny1 There is a bug in the udev-udeb package where the default permissions of /dev/null are incorrect. This has caused issues with packages like postgresql-8.3 failing to install correctly. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=510658 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=517389 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=525523 The bug in udev-udeb was apparently fixed, but the current Lenny installer still uses the older, buggy udeb. Is there going to be another rev of the Lenny installer that will fix this? Tony -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#511442: debian-installer: guided-with-lvm no longer allows multiple primary, partition
On Tue, 16 Jun 2009 17:15:46 -0400, Anthony Awtrey wrote: > Well, in some cases it looks like the autopartition-lvm is passing > around incorrect values for partition sizes and offsets. For example, > my failure case passes the following parameters to parted-server's > command_new_partition() function. Okay, looks like both 516347 and 511442 may have a common root cause http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=511442 Ferenc Wagner says in bug 511442: "Then lvm_extents_from_human in lvm-base.sh assumes SI kilobytes [kB] to compute the number of extents to create the LV with, which thus gets a factor of 1024/1000 smaller than expected." It appears that this new method used to determine sizes may not work in all cases. I have a number of different systems that I want to use the same preseed partman-auto-lvm expert recipe on. The basic partition structure I want is a root (with the kernel boot files) on a maximum 10GB primary partition with the rest of the disk allocated in an LVM volume. Right now I only have swap and home in the lvm, but I planned on allocating other small volumes for special purposes. What I have discovered is that changing the size of the primary root partition or adding an additional primary partition influences the way the LVM calculations work or fail. I have about 10 different boxes with different sized hard drives ranging from 40GB to 160GB. I have failed to come up with a single recipe that works across all the different platforms. The errors range from "Can't have a partition outside the disk!" to "Unexpected error while creating volume group" and those errors change depending on how much space is allocated in the primary partitions. I can often tweak the size of the primary paritions to make one platform work, but then other platforms with different sized partitions will fail. I have finally given up and gone back to using regular partitions with labels, but I still have a series of hardware / lvm recipe combinations that fail reliably and will be happy to test a fix if someone can tell me how to supersede the signed udeb packages with my updated and unsigned ones. Tony -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#538265: Add disable netcfg preseed option
Package: netcfg Version: 1.46 Severity: wishlist Tags: lenny I have a situation where I want to use a single, custom debian installer initrd, but want to preseed network configuration differences between production cdrom and development netboot installers. The systems in the field should not have networking enabled at all. With the stock Lenny installer, on systems with wireless cards and no proprietary firmware blobs, you get scary red error screens during the install complaining about network errors. If you add the firmware blobs to the d-i just to shut up the errors, and if the hardware switch is turned off, you again get scary red error screens about network errors. I don't want *any* networking on the cdrom installs, but I also want to use a consistent initrd between development and production to avoid possible bugs from using different installers. Enter this patch. It allows me to optionally disable network configuration completely via preseed on the cdrom install, but leaves the default to enabled for netboot. The attached patch may be a horrible, ugly hack based on the d-i design, but it works for me. If you don't like this patch, can you add a similar capability going forward? Thanks! Tony diff -urN netcfg-1.46.orig/debian/netcfg-common.templates netcfg-1.46/debian/netcfg-common.templates --- netcfg-1.46.orig/debian/netcfg-common.templates 2008-08-09 19:34:13.0 + +++ netcfg-1.46/debian/netcfg-common.templates 2009-07-24 15:27:30.0 + @@ -1,3 +1,12 @@ +Template: netcfg/enable_netcfg +Type: boolean +Default: true +# :sl1: +_Description: Enable network configuration during Install? + This option can be preseeded for cdrom installs and will cause the + installer to ignore any network configurations. Note that after the + install, the user must manually configure any networking options. + Template: netcfg/use_dhcp Type: boolean Default: true Binary files netcfg-1.46.orig/debian/.netcfg-common.templates.swp and netcfg-1.46/debian/.netcfg-common.templates.swp differ diff -urN netcfg-1.46.orig/netcfg.c netcfg-1.46/netcfg.c --- netcfg-1.46.orig/netcfg.c 2008-08-09 19:34:15.0 + +++ netcfg-1.46/netcfg.c2009-07-24 15:33:28.0 + @@ -78,6 +78,12 @@ /* initialize debconf */ client = debconfclient_new(); debconf_capb(client, "backup"); + +/* Check to see if netcfg should be run at all */ +debconf_get(client, "netcfg/enable_netcfg"); +if ( strcmp(client->value, "false") == 0 ) { +netcfg_write_loopback(); +return 0; +} /* always always always default back to DHCP, unless you've specified * disable_dhcp on the command line. */
Bug#538265: Add disable netcfg preseed option
On Fri, Jul 24, 2009 at 11:37 AM, Otavio Salvador wrote: > Please use netcfg/enable Done > Please change it to be a preseed only template. It avoid useless work > for translators and also keep the templates smaller since noone is > going to be asked about it. And done. Please let me know if I messed anything up! I also found that certain packages like postgresql really don't like systems without loopback interfaces and hosts files, so I modified the patch to write out basic stub files using netcfg_write_common() before exiting. Thanks for the fast response! T diff -urN netcfg-1.46.orig/debian/netcfg-common.templates netcfg-1.46.nosvn/debian/netcfg-common.templates --- netcfg-1.46.orig/debian/netcfg-common.templates 2008-08-09 19:34:13.0 + +++ netcfg-1.46.nosvn/debian/netcfg-common.templates2009-07-25 13:46:17.0 + @@ -1,3 +1,9 @@ +Template: netcfg/enable +Type: boolean +Default: true +Description: for internal use; can be preseeded + Set to false to disable netcfg entirely via preseed. + Template: netcfg/use_dhcp Type: boolean Default: true diff -urN netcfg-1.46.orig/netcfg.c netcfg-1.46.nosvn/netcfg.c --- netcfg-1.46.orig/netcfg.c 2008-08-09 19:34:15.0 + +++ netcfg-1.46.nosvn/netcfg.c 2009-07-25 13:46:17.0 + @@ -78,6 +78,19 @@ /* initialize debconf */ client = debconfclient_new(); debconf_capb(client, "backup"); + +/* Check to see if netcfg should be run at all */ +debconf_get(client, "netcfg/enable"); +if ( strcmp(client->value, "false") == 0 ) { +struct in_addr null_ipaddress; +char *hostname = NULL; + +null_ipaddress.s_addr = 0; +netcfg_get_hostname(client, "netcfg/dhcp_hostname", &hostname, 0); + +netcfg_write_common(null_ipaddress, hostname, NULL); +return 0; +} /* always always always default back to DHCP, unless you've specified * disable_dhcp on the command line. */
Bug#538265: Add disable netcfg preseed option
Oops! I used the wrong preseed hostname value in my last diff. The correct value is get_hostname not dhcp_hostname. I've updated the patch. On Fri, Jul 24, 2009 at 2:19 AM, Otavio Salvador wrote > Please also provide a patch for the installation guide to document the > new option. I've downloaded the installation-guide package and looked for other, similar configuration settings. It seemed like the most obvious spot was in the debconf variable example here: http://d-i.alioth.debian.org/manual/en.i386/apbs04.html The attached diff puts the netcfg/enable option at the top of the list with an explanation and left it commented out. T diff -urN netcfg-1.46.orig/debian/netcfg-common.templates netcfg-1.46.nosvn/debian/netcfg-common.templates --- netcfg-1.46.orig/debian/netcfg-common.templates 2008-08-09 19:34:13.0 + +++ netcfg-1.46.nosvn/debian/netcfg-common.templates2009-07-25 13:46:17.0 + @@ -1,3 +1,9 @@ +Template: netcfg/enable +Type: boolean +Default: true +Description: for internal use; can be preseeded + Set to false to disable netcfg entirely via preseed. + Template: netcfg/use_dhcp Type: boolean Default: true diff -urN netcfg-1.46.orig/netcfg.c netcfg-1.46.nosvn/netcfg.c --- netcfg-1.46.orig/netcfg.c 2008-08-09 19:34:15.0 + +++ netcfg-1.46.nosvn/netcfg.c 2009-07-25 13:46:17.0 + @@ -78,6 +78,19 @@ /* initialize debconf */ client = debconfclient_new(); debconf_capb(client, "backup"); + +/* Check to see if netcfg should be run at all */ +debconf_get(client, "netcfg/enable"); +if ( strcmp(client->value, "false") == 0 ) { +struct in_addr null_ipaddress; +char *hostname = NULL; + +null_ipaddress.s_addr = 0; +netcfg_get_hostname(client, "netcfg/get_hostname", &hostname, 0); + +netcfg_write_common(null_ipaddress, hostname, NULL); +return 0; +} /* always always always default back to DHCP, unless you've specified * disable_dhcp on the command line. */ diff -urN installation-guide-20081208lenny1.orig/en/appendix/preseed.xml installation-guide-20081208lenny1/en/appendix/preseed.xml --- installation-guide-20081208lenny1.orig/en/appendix/preseed.xml 2009-07-25 14:38:05.0 + +++ installation-guide-20081208lenny1/en/appendix/preseed.xml 2009-07-25 14:38:07.0 + @@ -800,6 +800,11 @@ +# Disable network configuration entirely. This is useful for cdrom +# installations on non-networked devices where the network questions, +# warning and long timeouts are a nuisance. +#d-i netcfg/enable boolean false + # netcfg will choose an interface that has link if possible. This makes it # skip displaying a list if there is more than one interface. d-i netcfg/choose_interface select auto
Migrating from Lenny to pre-squeeze installer
Howdy, I use the Debian installer to install boxes using custom packages from both a cd-rom and netboot preseeded process. Right now I'm looking at migrating from Lenny to the current pre-Squeeze debian installer to test the waters for the upcoming release. Plus we got in some new hardware that doesn't work with the Lenny Xorg version. *shakes fist at intel* I've got debian-cd and simple-cdd from svn and patched in #537368 for boot splash image support in debian-cd and our custom boot menu in simple-cdd. It mostly works as well as the Lenny. I just wanted to float a few things out there to see if you guys would prefer me writing bugs vs. just trying stuff here on the list. 1 - Making a custom initrd dies for me. Running this: fakeroot make ONLY_KLIBC=1 PRESEED="preseed.cfg" rebuild_cdrom_isolinux It dies with error 1 when running the get-packages script. I've isolated it to "if $KERNELVERSION" block around line 150. If I comment that block out, the initrd builds fine and runs. I can dig in if someone can tell me what to look for in there. If I take out the ONLY_KLIBC line I added, the find command run under $(MKLIBS) near the HACK ALERT: in the Makefile tries to include a bunch of text files in the library which chokes mklib. It looks like the logic is off in the find command somehow, because looking for files where the mode +0111 or *.so or *.so.* seems to be too greedy and matches lots of non-code files. 2 - The preseed for the netcfg/get_hostname and netcfg/get_domain isn't being picked up if you pass those in a preseed url. It does get picked up if I add them to the initrd image in the preseed.cfg file. Was that intentional? 3 - I've got a persistent preseed failure selecting the keymap. I can select American English manually, but the console-keymaps-at/keymap setting for 'en' that used to work now seems to get ignored. 4 - Thanks for putting the netcfg/enable setting in there for me last year! For some reason, even though it is set and I've preseeded as much of the wireless values as indicated in the templates file, I still get an Error about being unable to start the network. I see the code in netcfg-common.c where the netcfg/error message is thrown in the netcfg_die() function. It is called from one of three places in the file, but I haven't narrowed it down yet. I still see the test for netcfg/enable in the netcfg.c so I don't know why it is still trying to do networking at all. 5 - I've had some issues getting grub happy with the preseeded values. I was wondering if anyone has some clues on what it is looking for? I see the grub-install package was updated to 1.54, but it didn't help this situation. It will complete the install if I don't preseed any grub2/grub-pc items, but if I do it either fails looking for the kopt command line (which is already preseeded in there) or gets into some kind of weird endless postinst loop if I change the preseed settings. Thanks for the great work on the installer! It's looking really good on the new hardware I've got to support. I'll keep plugging away at these issues and will provide patches as I can. Tony -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4c59d3bb.4050...@awtrey.com
Bug#597005: partman-base: Preserving partitions on install exposes alignment problem
Package: partman-base Version: 144 While testing a preseeded install that preserves a data partition (moving from lenny to squeeze), we discovered that the change from cylinder to optimal alignment makes the preserved filesystem unusable. Create a partition scheme like this in Lenny: / = 10G swap = 1G /home = the rest Set up a preseed recipe that preserves the /home partition (see attached file for our example). We use simple-cdd to build custom installers that use our preseed install file. The partition alignment for all partitions is changed when the first two partitions are recreated and the /home partition is no longer mountable after install. I suppose it is very difficult to realign existing filesystems. Can the partition alignment be mixed with new partitions taking advantage of the potential performance benefits of the optimal setting, while preserving the existing partitions/file systems alignment? Tony # Example recipe for partman d-i partman-auto/expert_recipe string system :: \ 512 1024 10240 ext3 \ $primary{ } \ $bootable{ } \ method{ format } format{ } \ use_filesystem{ } filesystem{ ext3 }\ options/noatime{ noatime } \ label{ root } \ mountpoint{ / } \ . \ 512 1024 300% linux-swap \ $primary{ } \ method{ swap } format{ } \ label{ swap } \ . \ 512 1024 10 ext3 \ $primary{ } \ method{ keep } \ use_filesystem{ } filesystem{ ext3 }\ options/noatime{ noatime } \ label{ home } \ mountpoint{ /home } \ .
Bug#597553: cdrom-detect: Need a simple retry or delay to mount USB CD-ROMs
Package: cdrom-detect Version: 1.33 I'm doing some testing on the squeeze debian-installer package from svn. In the Lenny release, when installing from a USB CD-ROM it sometimes took longer to load the modules, spin up the drive and get a response before the mount command would fail. This meant that in some cases it was necessary to hit Enter to retry the mount as prompted by the installer. In Squeeze, the installer no longer allows for a simple retry and it is now necessary to go through a three step 'Load CD-ROM drivers from removable media' etc. just to simply retry the CD-ROM mount. Given that this has been an issue for two releases, would it be possible to just try to mount twice for each device instead of once. Or possibly have a slight pause between running list-devices (which appears to trigger the USB modules to load) and the subsequent mount attempt? I've got a repeatable scenario and am willing to test any changes. Tony -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4c97acf2.6060...@awtrey.com
Bug#597553: cdrom-detect: Need a simple retry or delay to mount USB CD-ROMs
For what it's worth, doing the following made the issue go away for us: Index: packages/cdrom-detect/debian/cdrom-detect.postinst === --- packages/cdrom-detect/debian/cdrom-detect.postinst (revision 64821) +++ packages/cdrom-detect/debian/cdrom-detect.postinst (working copy) @@ -96,6 +96,7 @@ WRONG= devices="$(list-devices cd; list-devices maybe-usb-floppy)" + sleep 2 for device in $devices; do if try_mount $device $CDFS; then break 2 I know, it's a total hack. Would it be better to put something in list-devices to wait until the devices become available? T -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4c97b39a.9060...@awtrey.com
Bug#597553: cdrom-detect: Need a simple retry or delay to mount USB CD-ROMs
I spoke too soon. If I let the drive completely stop and then wait a minute or two on the isolinux boot screen, the issue appears again. I'll try a few other things to see if I can wake up the device before mount is called. Tony -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4c97dd0b.60...@awtrey.com
Bug#597553: cdrom-detect: Need a simple retry or delay to mount USB CD-ROMs
Okay, I've got some more info now. It looks like the initial call to "list-devices cd" occurs before the usb-storage device scan is complete or at least before the sysfs files have settled. This device scan can take much longer if the CD/DVD drive is completely spun down. I am not proud of this code and I sincerely hope someone else can think of a better way to do this... --- cdrom-detect.postinst.orig 2010-09-21 19:20:44.0 + +++ cdrom-detect.postinst 2010-09-21 19:19:29.0 + @@ -73,6 +73,19 @@ mkdir /cdrom 2>/dev/null || true +# Need to wait for the usb device scan to complete +if [ "$OS" == "linux" ]; then + for count in 1 2 3 4 5 6 8 9 10; do +devices="$(list-devices cd; list-devices maybe-usb-floppy)" +log "Devices: '$devices'" +if [ -n "$devices" ]; then + break 2 +else + sleep 1 +fi + done +fi + while true; do WRONG= Again, steps to reproduce (so someone other than me can test this): 1) Boot install CD on external USB CD-ROM drive (preferably bus powered) 2) Wait for a minute or two for the drive to spin down / go to sleep 3) Hit Enter to install Debian Tony -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4c99077b.2050...@awtrey.com
Bug#690330: netcfg: Segfault when netcfg/enable is false
Package: netcfg Version: 1.98 Severity: normal I'm looking at moving from squeeze to wheezy and finally got simple-cdd generating an installable disk. My first boot I hit a segfault in netcfg: Oct 12 17:29:10 kernel: [ 111.181024] netcfg[10509]: segfault at 0 ip b7612274c sp bfe3063c error 6 in libc-2.13so[b759c000+142000] I found an issue on Ubuntu's bug tracker that looks like my issue: https://bugs.launchpad.net/ubuntu/+source/netcfg/+bug/901700 I am tracing through the segfault in my environment and will post updates / patches as I get them. Tony -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.2.0-4-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20121012181004.2853.64374.report...@knappogue.idealcorp.com
Bug#690330: netcfg: Segfault when netcfg/enable is false
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Philipp Kern wrote: > I'll fix it, thanks for the report. Thank you very much, Philipp! Tony - -- Anthony L. Awtrey -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJQfEyaAAoJEC1MrsQmmCjYQLkIAJSI0dS0ri6JouRNhNP0uE7G tNcO63z8nJuv7005F6R+UL3pTdpxCjDw2TMFetp8pSggGX+ZOMTbkF/8wUgjjzF2 MXACt3uGYs3fBUtuLtiXvs3AB6RAueAw8nuwSFVV3n4oiSxpk4dC3htOXQ7LAg76 GxsEFziUdYTC3WhggqR8FIbtM3GW+jIjYmyq/mpH0iMHVQ6D7N8KIQP39dCYZMsj SdEfPtlAOwdnMf4bHPOoZIiJ491OsfbAy5WYPGvQG8a29+4Tj/0fRV5C4PPI28NY 35TKDAo8wakc2uFAaFcgG6uoA2ie2KRCJme57Bf7S8TVvCfqfOGyS1CnQ3IcAgc= =7u/f -END PGP SIGNATURE- -- To UNSUBSCRIBE, email to debian-boot-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/507c4c9a.7080...@awtrey.com