Commit c14a9f6d authored by Tails developers's avatar Tails developers
Browse files

USB installer update.

parent 84fa3f96
......@@ -46,10 +46,10 @@ encrypted partition or a file-backed encrypted FS shall be researched
and decided upon. If the partition way is chosen, the installer
software must have partitioning capabilities.
Implementation
==============
Roadmap
=======
[[!tag todo/code]]
[[!tag todo/code todo/documentation]]
* [[what is left to do|usb_install_and_upgrade/todo]]
* [[what we've done so far|usb_install_and_upgrade/done]]
......@@ -63,6 +63,9 @@ Our plan is to:
2. probably start (again...) from Ubuntu's
[usb-creator](https://launchpad.net/usb-creator), that has a
much saner codebase; [[usb_install_and_upgrade/future_spec]]
3. take care of Windows support, partial upgrades, and postponed stuff
(see the *Later* section on the [[usb_install_and_upgrade/todo]]
page)
Our work on liveusb-creator is in a Git repository:
......
[[!toc levels=2]]
Here's what we've done so far, based on Fedora's liveusb-creator codebase.
[[!toc levels=2]]
Decide
======
......@@ -91,6 +91,7 @@ Misc
- virer le QPixmap proxies dans pyuicc4_custom
- .desktop file uses `Icon=fedorausb.png` => use a more generic icon
[intrigeri]
- write minimal manpage
User interface
==============
......@@ -120,8 +121,8 @@ We have `.desktop` files for the following usecases:
`--clone -P -m`
* Upgrade a (non-running) Tails system using a ISO file: no
additional switch required.
* Upgrade a (non-running) Tails system using a ISO file: no
additional switch required.
* Upgrade a (non-running) Tails system using another, fresher,
running Tails: no additional switch required.
Note for later: having *Clone the currently running Tails system* as
an option in the UI would allow us separate usecases based on the
......@@ -155,3 +156,57 @@ In feature/ignore_source_device branch, based on the feature/partitioning one:
- Don't ask to confirm before resetting the MBR when using
`--partition`: done in 5028cb0.
- if stick size <1.5GB, error out in a user-friendly way [intrigeri]
Testing
=======
3.11.4-2~4.gbp9e95fa
--------------------
* cloning onto a USB stick that already has a FAT32 partition.
* installing onto a USB stick that has a MBR partition table, and no
partition at all.
* installing onto a USB stick that already has a old-fashioned cat'd
Tails on it, using the *Upgrade from running* function: warns this
action is not supported, correctly directs the user to the
*Clone* launcher.
* installing onto a USB stick that already has a old-fashioned cat'd
Tails on it using the *Clone Tails* function.
* test cloning from USB on bare metal
* booting from a Tails installed by this installer
* upgrading from ISO file while running a Tails system
* upgrading from CD on bare metal
* cloning from CD on bare metal
* boot from a Tails upgraded by this installer
* test "emergency shutdown on boot medium removal" feature, on Tails
system installed by this installer
### From Tails installed by this installer
* test cloning a running Tails that was itself installed using this
installer, onto a USB stick that already has a old-fashioned cat'd
Tails on it
3.11.4-6
--------
Most of this was run from a Tails system installed by this installer:
* cloning onto a USB stick
* cloning onto a USB stick that has a MBR partition table, and no
partition at all.
* upgrading from running system
* upgrading from CD on bare metal
* cloning from CD on bare metal
* cloning onto a USB stick
* installing onto a USB stick that already has a old-fashioned cat'd
Tails on it, using the *Upgrade from running* function: warns this
action is not supported, correctly directs the user to the
*Clone* launcher.
* cloning a running Tails onto a USB stick that already has
a old-fashioned cat'd Tails on it
* upgrading from ISO file while running a Tails system
* test "emergency shutdown on boot medium removal" feature, on Tails
system installed by this installer
* booting from a Tails installed by this installer
* boot from a Tails upgraded by this installer
[[!toc levels=2]]
Misc.
=====
Bugs
====
- write a simple GUI that resets a USB stick that previously contained
a isohybrid Tails to a sane state
OR document with nice screenshots how to do so on GNOME / Windows [bertagaz]
Missing OS
----------
Upgrade
=======
Creating a second partition resets the first partition's attributes.
Until we support incremental updates (see
[[todo/usb_install_and_upgrade]] for details), our installer must
allow upgrading a (non-running) Tails that is installed on a removable
device. The existing code should already support this, but we need to
double-check this and possibly wrap that feature, UI-wise, in a way
that properly support this usecase. Putting ourselves in the situation
of documenting how to use our installer to perform an upgrade may be a
good way to detect remaining problems.
Normal output is:
Input
=====
$ sgdisk /dev/sdb --attributes=1:show
1:2:1 (legacy BIOS bootable)
1:60:1 (read-only)
1:62:1 (hidden)
1:63:1 (do not automount)
After creating a second partition, the output is empty.
As documented on the [syslinux
wiki](http://www.syslinux.org/wiki/index.php/Common_Problems#Missing_OS_.28gptmbr.bin.29),
trying to boot such a broken stick results in the `Missing OS` message
and no boot.
[bertagaz]
Conclusions:
- test installing from ISO file while running a Tails system
- test cloning from USB on bare metal
- test cloning from CD on bare metal
* We must report this bug upstream. Is it specific to GNOME Disk
Utility, or a udisks' one? The
[udisks
doc](http://hal.freedesktop.org/docs/udisks/Device.html#Device.PartitionCreate)
seems to say that they only support the `required` flag.
* The software that will create the persistence partition may have to
workaround this, possibly by not using udisks.
Documentation
=============
- update [[todo/usb_install_and_upgrade]] with current decisions and
plans [bertagaz]
- update [[download and installation|download]] documentation [bertagaz]
download and installation
-------------------------
Update [[download and installation|download]] documentation.
To be treated carefully:
* The bootstrap steps (when one has no Tails system yet): it implies
burning a CD, booting from CD, and cloning. Or do we want to make
a liveusb-creator `.deb` available on our website?
* Installing over an old-fashioned Tails (hybrid ISO installed by
`cat` or similar) (seems to? sometimes? always?) requires to reset
the partition table **first**, see the "resetting a Tails USB stick"
section bellow (details: `sgdisk --print` returns non-zero exit
code when run on such a disk, and the installer carefully refuses to
overwrite a partition table it does not understand). **Update:** it
*seems* like this only happens when a hybrid ISO was cat'd, then an
ISO was installed with the USB installer, then a hybrid ISO was
cat'd again (erasing the main GPT but possibly not the backup one),
and the USB installer is run. If this is so, let's ignore such weird
cases that only happen to hard-core Tails developers.
resetting a Tails USB stick
---------------------------
The `feature/usb_installer` branch has documentation in
`doc/resetting_usb_stick` that explains how to reset a USB stick that
previously contained a isohybrid or GPT Tails to a "normal" state
(i.e. MBR partition table, and optionally FAT32 partition).
Left to do:
* test Windows instructions
* link to these pages somewhere (where?)
Localization
============
Hand out `.po` files to translators.
Later
=====
* Set cursor to waiting (hourglass) state while working.
* *Target Device* list: display more information, such as the stick brand and model.
* If stick is <1.5GB case, support installing but don't show the
persistence checkbox
* Allow setting the system/overlay partitions size via command-line
......@@ -55,6 +98,12 @@ Later
installation on local hard disks (= not external USB);
seems to be implemented by --force, see special casing in the
detect_removable_devices method.
* currently lists all partitions on the same USB stick. What should it
do instead?
- if one of those partitions is labelled `Tails`, and we're
upgrading, it probably makes sense hiding other partitions on the
same physical device
Windows support?
----------------
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment