Bug #12146
Tails installed using dd is not seen as a bootable device on MacBook Pro
100%
Description
I’ve tried starting Tails installed with dd with all combinations of:
- Tails 2.9.1 and 2.4
- MacBook Pro 6,2 and MacBook Pro 8,1
- Lexar USB 3.0 and Kingston DataTraveler G3 USB sticks
- Mac boot loader (on both laptops) and rEFInd (only on the MBP 6,2)
The Mac boot loader has never showed me any of these USB sticks. rEFInd does show me the USB stick, but once I press enter it starts a Windows installation that’s on the internal hard drive of the (dual-boot) laptop.
It was reported (Bug #15021) that MacBookPro 13,2 and MacBookPro 14,3 exposed similar issues.
Subtasks
Bug #15025: Document that Tails installed using dd is not seen as a bootable device on some MacBook Pro | Resolved | 0 |
|||
Feature #15325: Test if a DVD works on a Mac where a dd Tails is not recognized | Resolved | 50 |
Related issues
Related to Tails - |
Resolved | 2014-07-31 | |
Related to Tails - Feature #5691: Consider upgrading to current live-build | Confirmed | ||
Related to Tails - |
Rejected | 2017-08-24 |
History
#1 Updated by intrigeri 2017-01-15 17:49:36
- Assignee set to intrigeri
Next steps:
- test with Tails 1.x (I’ll do it)
- dear help desk, did you get any similar bug report?
#2 Updated by mercedes508 2017-01-21 14:56:27
- Type of work changed from Test to Research
I just tested with an intermediate Tails 1.8.1 on a MBP 9.2 (without rEFInd) and it is recognized as a bootable device.
And we got at least one similar report, but without details about Tails USB being intermediate or not, and no email
#3 Updated by intrigeri 2017-02-07 01:54:31
- Assignee changed from intrigeri to mercedes508
- QA Check set to Info Needed
mercedes508 wrote:
> I just tested with an intermediate Tails 1.8.1 on a MBP 9.2 (without rEFInd) and it is recognized as a bootable device.
What about Tails 2.10 on the same computer?
#4 Updated by mercedes508 2017-02-14 16:58:55
On the same computer, Tails 2.10 installed using dd (from Linux) is recognized as a bootable device, starts booting but apparently get stuck forever with a bliking cursor. Which as far as I remember was what I got from the 1.8.1 intermediate Tails. I do’t remember if I installed it using dd from Linux or OSX. I can later reproduce from OSX dd only.
#5 Updated by intrigeri 2017-02-15 10:01:06
> […] starts booting but apparently get stuck forever with a bliking cursor.
Can you please report a separate bug about this?
#6 Updated by mercedes508 2017-02-16 11:32:56
created Bug #12244
#7 Updated by intrigeri 2017-03-03 17:54:26
- Assignee changed from mercedes508 to intrigeri
- QA Check deleted (
Info Needed)
Reproduced on MacBook Pro 8,1 with Tails 1.8.2 (that was current when the Installation Assistant was released, so I was kinda hopeful it would work).
Interestingly, when we got back to isohybrid 2 years ago (Feature #8510), we tested DVD on Mac twice, but didn’t test dd’ing a hybrid ISO to USB and booting it on a Mac. I’ll now try:
- building from stable and using different isohybrid options
- some even older, non-hybrid Tails ISO, that I’ll hybrid by hand
#8 Updated by intrigeri 2017-03-03 17:55:25
- Target version set to Tails_2.12
(Mostly to keep it on my radar: I don’t realistically aim to fix it in 2.12.)
#9 Updated by intrigeri 2017-03-03 19:29:01
- 2.10,
AMNESIA_ISOHYBRID_OPTS=""
: fails - 1.1.2, isohybrid’ed by hand (sid’s syslinux) with no option: fails
#10 Updated by intrigeri 2017-04-03 08:00:28
- Description updated
#11 Updated by intrigeri 2017-04-03 08:05:10
- related to
Bug #7462: isohybrid command returns warnings on Tails 1.1 added
#12 Updated by intrigeri 2017-04-03 08:06:17
Next thing I want to try: some other isohybrid options, see Bug #7462 for historical info about what we used to do, and why we changed it.
#13 Updated by intrigeri 2017-04-12 07:16:58
intrigeri wrote:
> Next thing I want to try: some other isohybrid options, see Bug #7462 for historical info about what we used to do, and why we changed it.
I also want to try:
- feature/5630-deterministic-builds, that uses xorriso
- feature/5630-deterministic-builds and let xorriso produce a hybrid ISO itself (
--binary-images iso-hybrid
) instead of hybriding it ourselves after the fact
#14 Updated by intrigeri 2017-04-12 07:22:16
And these two upstream syslinux commits might be relevant:
commit 32c09027423f61c305e2423e52f5f69ecad8e2c0
Author: Martin Str|mberg <ams@ludd.ltu.se>
Date: Sun Mar 26 07:32:11 2017 -0400
mbr/isohdpfx.S: correct stack for heads/sectors; revert
commit 8739e2ff9ba3f92652c8df846924fd00e1ce2753
Author: Martin Str|mberg <ams@ludd.ltu.se>
Date: Sun Mar 26 07:54:29 2017 -0400
mbr/isohdpfx.S: Clear CX on INT 13h AH 41h failure
#15 Updated by intrigeri 2017-04-12 08:23:07
And (finally?) I want to try passing --uefi
to the isohybrid
command.
#16 Updated by intrigeri 2017-04-12 08:24:27
- Target version changed from Tails_2.12 to Tails_3.0
#17 Updated by intrigeri 2017-05-26 08:26:20
Another potentially relevant upstream commit:
commit 80b0ef5ffd6998818b3785c3c15bf2ae73687e09
Author: Colin Finck <colin@reactos.org>
Date: Thu Jan 19 00:41:39 2017 +0100
isohybrid: Open ISO file in binary mode
Open ISO file in binary mode to ensure that line endings stay untouched.
#18 Updated by intrigeri 2017-05-26 08:56:29
- Status changed from Confirmed to In Progress
Applied in changeset commit:b1b3500a16070e1f12d2f9dee0416ebe6cc2b3fc.
#19 Updated by intrigeri 2017-05-26 11:02:44
- Status changed from In Progress to Confirmed
intrigeri wrote:
> * feature/5630-deterministic-builds, that uses xorriso
Tails 3.0~rc1 was built using xorriso, and it exposes the same problem on a MacBook Pro 8,1.
> * feature/5630-deterministic-builds and let xorriso produce a hybrid ISO itself (--binary-images iso-hybrid
) instead of hybriding it ourselves after the fact
I’ve tried this (wip/bugfix/12146-hybrid-with-xorriso
, based on current testing, formerly aka. feature/stretch, that uses xorriso) and it doesn’t fix this problem on a MacBook Pro 8,1. But even xorriso uses /usr/lib/ISOLINUX/isohdpfx.bin
so I’ll retry this approach, combining it with the one discussed below.
I’ve also tried cherry-picking the 3 aforementioned syslinux commits (wip/bugfix/12146-syslinux-fixes
): same problem.
Combining both approaches (wip/bugfix/12146-hybrid-with-xorriso+syslinux-fixes
) didn’t work any better.
#20 Updated by intrigeri 2017-05-26 12:54:31
intrigeri wrote:
> And (finally?) I want to try passing --uefi
to the isohybrid
command.
This doesn’t work with our current ISO (output = “unable to find efi image”): http://www.syslinux.org/wiki/index.php?title=Isohybrid#UEFI explains what we need to do to support UEFI boot on hybrid ISOs.
#21 Updated by intrigeri 2017-05-27 06:20:03
- Target version changed from Tails_3.0 to Tails_3.2
I was looking for an easy and non-risky solution for 3.0, but clearly the only option left that I can think of (adding UEFI support to our isohybrid image) is not easy, and is risky.
#22 Updated by intrigeri 2017-06-05 17:39:46
- Target version deleted (
Tails_3.2)
So this will require quite some work and calls for testing. It’s not clear to me how high I should prioritize it vs. our other plans in the installation area, so dropping the target version until that’s clarified.
#23 Updated by delinquentme 2017-10-31 09:19:38
Ive been able to get a bootable TAILS 3.2 installation using a tool called “Mac Linux USB Loader” https://github.com/SevenBits/Mac-Linux-USB-Loader
Its possible I’ve gotten further than anyone else in this install process on a 2015 MacBook Retina, being that I’ll attach the current bug Im running into here.
When running the tail-installer from the intermediate disk… It fails to start.
It throws an exception from utils.py at:
<code class="python">
parentblock = udisksclient.get_block_for_drive(drive, get_physical=False)
</code>
Giving an error something like:
“Argument 1 does not accept None”
I THINK… parentblock should be something like “/dev/sdc1” even though the comment on the function has something more verbose: “/org/freedesktop/UDisks2/block_devices/sdb”
I think the BlocksProxy object seems to have a few values for its attributes which dont match the type given in the documentation for UDisks2 BlocksProxy Class (https://lazka.github.io/pgi-docs/UDisks-2.0/classes/BlockProxy.html)
It would be very helpful if someone would give me the output of this code in the tails_installer/utils.py file:
<code class="python">
def underlying_physical_device(path):
...
block = udisksclient.get_block_for_dev(rawdev)
print "------ block="
print block.connection
print block.flags
print block.name
print block.object_path
print block.cancellable
print block.callback
print block.user_data
print "------"
drive = udisksclient.get_drive_for_block(block)
</code>
From the documentation it seems block.object_path and block.name should be strings, but when running my tails-installer they’re instances of other objects, from my recollection Gio.* objects.
#24 Updated by intrigeri 2017-11-11 10:45:05
- Target version set to Hole in the Roof
(Having our install doc on Mac via USB totally broken seems to qualify.)
#25 Updated by intrigeri 2017-11-11 21:19:16
dumpet
will be useful if/when adding UEFI support to our ISO (for DVD boot and then for isohybrid boot).
#26 Updated by intrigeri 2017-11-11 21:27:10
Apparently the simplest way would be to create a FAT image that embeds GRUB2’s BOOTX64.EFI
and a GRUB config file that uses our syslinux config, similarly to what we do for 32-bit UEFI already. And then we can point xorriso to this FAT image and finally pass --uefi
to the isohybrid
command. This should be fairly easy, but we need to teach our live-build
fork how to pass additional, custom XORRISO_OPTIONS
. The relevant code may already be available in newer versions of live-build
, so that’s where we should look first.
Resources:
- http://www.syslinux.org/wiki/index.php?title=Isohybrid#UEFI
- http://wiki.osdev.org/El-Torito
- https://unix.stackexchange.com/questions/312789/making-a-uefi-bootable-image-with-mkisofs-and-eltorito-boot-efiboot-img
Now, my comment from Bug #12146#note-22 still stands, so I’ll try hard not to work on this until February.
#27 Updated by intrigeri 2017-12-08 16:51:52
- Description updated
#28 Updated by intrigeri 2017-12-08 16:52:57
According to Bug #15021 Kali Linux’ ISO, installed to a USB drive with dd, boots fine on MacBookPro 13,2 and MacBookPro 14,3, while Tails fails the exact same test.
#29 Updated by intrigeri 2017-12-08 16:58:37
- related to
Bug #15025: Document that Tails installed using dd is not seen as a bootable device on some MacBook Pro added
#30 Updated by intrigeri 2017-12-08 17:26:22
- related to Feature #5691: Consider upgrading to current live-build added
#31 Updated by intrigeri 2017-12-08 17:28:54
intrigeri wrote:
> According to Bug #15021 Kali Linux’ ISO, installed to a USB drive with dd, boots fine on MacBookPro 13,2 and MacBookPro 14,3, while Tails fails the exact same test.
It seems that current live-build upstream does the right thing by default (see scripts/build/binary_{grub-efi,iso,syslinux,loopback_cfg}
in its Git tree) which is why Kali boots fine. We could replicate this (which is essentially what the plan I described above was except we have a source of inspiration more similar to our current build system) or we could switch to current live-build. Last time we tried porting our code base to a newer live-build (Feature #5691) we gave up but times have changed, and live-build is now maintained in a way that would allow us to contribute our stuff more easily.
#32 Updated by intrigeri 2017-12-08 17:30:19
- blocked by
Feature #11679: Rethink the installation process and upgrade process added
#33 Updated by sajolida 2018-02-04 13:32:08
I can reproduce this bug with Tails 2.2 (2 years old) so it was already happening when we wrote the installation assistant.
#34 Updated by sajolida 2018-02-04 14:29:25
- Subject changed from Intermediary Tails is not seen as a bootable device on MacBook Pro to Tails installed using dd is not seen as bootable on MacBook Pro
Actually, when the intermediary Tails has been installed using UUI 1.9.8.0 I can boot from it on MacBook Pro 8,1.
Changing the title of this ticket accordingly.
#35 Updated by sajolida 2018-02-04 14:30:30
- Subject changed from Tails installed using dd is not seen as bootable on MacBook Pro to Tails installed using dd is not seen as a bootable device on MacBook Pro
#36 Updated by intrigeri 2018-02-06 16:05:29
- blocked by
Feature #15292: Distribute a USB image added
#37 Updated by intrigeri 2018-02-06 16:17:20
- blocks deleted (
)Feature #11679: Rethink the installation process and upgrade process
#38 Updated by intrigeri 2018-02-06 18:02:00
- Assignee changed from intrigeri to segfault
This will be fixed by Feature #15292 => reassigning to the lead developer for that project :)
#39 Updated by sajolida 2018-02-16 21:30:44
- related to
Feature #14448: Consider documenting Rufus as a workaround in case UUI doesn't work added
#40 Updated by sajolida 2018-02-18 12:59:02
- related to deleted (
)Bug #15025: Document that Tails installed using dd is not seen as a bootable device on some MacBook Pro
#41 Updated by intrigeri 2019-03-06 10:22:40
- blocks deleted (
)Feature #15292: Distribute a USB image
#42 Updated by intrigeri 2019-03-06 10:23:01
- Status changed from Confirmed to Rejected
- Assignee deleted (
segfault)
Fixed by Feature #15292.
#43 Updated by intrigeri 2019-03-06 11:35:26
- Status changed from Rejected to Resolved
(Gah, misclicked.)