I have been installing Unix/Linux as dual boot with Windows for 30
years without problem but I am struggling with my first attempt to
install on a Lenovo Thinkpad E570 laptop with a UEFI BIOS.
I am using Rufus to format a USB memory stick with the following
parameters:
Am 21.11.2022 um 17:33:10 Uhr schrieb Martin Liddle:
I have been installing Unix/Linux as dual boot with Windows for 30
years without problem but I am struggling with my first attempt to
install on a Lenovo Thinkpad E570 laptop with a UEFI BIOS.
Go to the UEFI and set the boot mechanism to "UEFI only". Disable
Fastboot.
I am using Rufus to format a USB memory stick with the following
parameters:
Don't use Rufus, only write the original ISO image to the flash disk.
Boot into Windows, disable Fastboot and Hibernate.
If you don't have a free partition, shrink the windows partition, so
you have enough free unpartitioned space on the disk.
Then boot the Debian flash disk and do the partitioning.
I have been installing Unix/Linux as dual boot with Windows for 30 years >without problem but I am struggling with my first attempt to install on
a Lenovo Thinkpad E570 laptop with a UEFI BIOS. I am using Rufus to
format a USB memory stick with the following parameters:
Boot selection: Debian 1150-i386-netinst.iso
Partition scheme: GPT
Target system: UEFI (non CSM)
File system: FAT32
Cluster size: 4096
Rufus runs and creates what seems like a reasonable image. But when i
reboot and try and boot from the USB stick there is a brief flash of the
LED on the drive and the boot menu returns to the the default Windows
boot device. I have googled looking for similar problems and tried
turning off Secure Boot but I am getting nowhere. I have also looked at >quite a number of YouTube videos and tried a couple of USB memory
sticks. At the moment I am completely out of ideas. Any suggestions on
what I am doing wrong or where would be a better place to ask the
question? I am trying to install a 32bit version of Debian alongside a
64 bit version of Windows; could this be a problem?
That's exactly your problem. When booting via UEFI, the firmware will
only ever boot an image using a matching architecture/size. As your
system is using a 64-bit UEFI implementation, it won't boot a 32-bit
image. You'll need to grab the amd64 netinst instead.
In Linux I have copied the ISO to the flash drive.
cp debian-11.5.0-i386-netinst.iso /dev/sdb
hank you, that is very helpful. However I do have a good reason to
run a 32 bit version for the time being. I have finally discovered a
BIOS setting that with secure boot off, allows me to give legacy
devices priority over UEFI; this has allowed me to do a basic 32 bit
install from a DVD drive with one issue; the grub installation
failed. I have reset the BIOS back to Secure boot and Windows stills
boots. How would I install grub in this situation (assuming that I
can)?
Am 22.11.2022 um 18:59:28 Uhr schrieb Martin Liddle:
i386/i686 and UEFI might be a problem. What is the exact reason for
using i386 in 2022 on a machine with UEFI that has a amd64 compatible
cpu.
On 22/11/2022 19:17, Marco Moock wrote:
Am 22.11.2022 um 18:59:28 Uhr schrieb Martin Liddle:
i386/i686 and UEFI might be a problem. What is the exact reason for
using i386 in 2022 on a machine with UEFI that has a amd64 compatible
cpu.
I have 2 servers and about 20 other computers running 32 bit Linux
mainly because our software is developed using an ancient 32 bit
compiler. I am getting very old and it is very debatable whether it is
worth the hassle of porting everything to a different 64 bit compiler.
If it is confirmed that we can't mix 32 bit and 64 bit then I'll have to rethink things.
You have roughly two choices:
1. Work out how to boot a 32 bit OS on a 64 bit UEFI. It might be possible to use a 64 bit GRUB to boot a 32 bit kernel, for example. Some tinkering
is likely to be required.
2. Install a 64 bit OS. Then just install whatever 32-bit libraries are needed for your 32-bit compiler and apps. You can still run your compiler and 32-bit binaries on a 64 bit OS and they will work fine. https://wiki.debian.org/Multiarch
https://wiki.debian.org/Multiarch/HOWTO
#2 is the most preferable becaues you're running a 64 bit kernel so you can take advantage of the hardware you have, and just your specific apps are 32 #bit.
I am trying to install a 32bit version of Debian alongside a 64 bit version of
Windows;
Martin Liddle wrote:
I am trying to install a 32bit version of Debian alongside a 64 bit
version of Windows;
Dual booting felt old-hat to me as soon as hypervisors appeared
letting you run windows within linux or vice-versa ...
Thank you, that is very helpful. However I do have a good reason to run
a 32 bit version for the time being. I have finally discovered a BIOS >setting that with secure boot off, allows me to give legacy devices
priority over UEFI; this has allowed me to do a basic 32 bit install
from a DVD drive with one issue; the grub installation failed. I have
reset the BIOS back to Secure boot and Windows stills boots. How would
I install grub in this situation (assuming that I can)?
In Linux I have copied the ISO to the flash drive.
cp debian-11.5.0-i386-netinst.iso /dev/sdb
You need to use dd to do that.
dd if=debian-11.5.0-i386-netinst.iso of=/dev/sdb status=progress bs=4M
Thanks, your assessment of the situation is similar to mine. I need to experiment and see what works. I haven't got time to do it for a few
days as I have wasted too much time getting to the point where I
properly understand the situation.
2. Install a 64 bit OS. Then just install whatever 32-bit libraries are needed for your 32-bit compiler and apps. You can still run your compiler and 32-bit binaries on a 64 bit OS and they will work fine. https://wiki.debian.org/Multiarch
https://wiki.debian.org/Multiarch/HOWTO
On 22/11/2022 20:50, Theo wrote:
Sorry for the delay in coming back to this topic but more pressing
2. Install a 64 bit OS. Then just install whatever 32-bit libraries
are needed for your 32-bit compiler and apps. You can still run your
compiler and 32-bit binaries on a 64 bit OS and they will work fine.
https://wiki.debian.org/Multiarch
https://wiki.debian.org/Multiarch/HOWTO
issues took priority. Having experimented with various options I have decided that the advice to use a 64 bit OS and Multiarch is the way to
go; thanks to the several people who suggested this was the route to
use.
I now have a 64 bit Debian 11 installation with Multiarch and I have got
the 32 bit compiler working and first test suggest it is producing code
that runs properly. However I am now stuck because the code includes
our own interface to mariadb. I can see that both i386 and amd64
versions of mariadb are installed but I can't find where the header
files (particularly mysql.h) are to be found. As I read the
documentation the headers should be provided by libmariadb-dev which is installed. On an actual i386 install they are in /usr/include/mariadb
but I don't know where they would be under multiarch. All suggestions welcome.
'locate' works for finding files whose names are known:
Run 'updatedb' to make sure the filename database is up to date (it should
be run automatically every day as a cron job) and then run
locate thefilename
to get its full pathname.
I now have a 64 bit Debian 11 installation with Multiarch and I have
got the 32 bit compiler working and first test suggest it is producing
code that runs properly. However I am now stuck because the code
includes our own interface to mariadb. I can see that both i386 and
amd64 versions of mariadb are installed but I can't find where the
header files (particularly mysql.h) are to be found. As I read the documentation the headers should be provided by libmariadb-dev which
is installed. On an actual i386 install they are in
/usr/include/mariadb but I don't know where they would be under
multiarch. All suggestions welcome.
There’s a mariadb.pc file, so you should be able to call
pkg-config --cflags mariadb
from your makefile to find the headers.
With both a 64 bit and 32 bit of mariadb appearing in the list of
installed packages.
On 04/12/2022 20:29, Richard Kettlewell wrote:
There’s a mariadb.pc file, so you should be able to call
pkg-config --cflags mariadb
from your makefile to find the headers.
Thanks, on a 32 bit server that does indeed return the location of the headers. On the 64 bit server with multiarch I get an error message: "Package mariadb was not found in the pkg-config search path." As far
as I can see there is no mariadb.pc file anywhere.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 38:46:52 |
Calls: | 6,648 |
Files: | 12,193 |
Messages: | 5,329,312 |