2 Feature: Installing Tails to a USB drive
4 I want to install Tails to a suitable USB drive
7 Scenario: Try installing Tails to a too small USB drive with GPT and a FAT partition
8 Given I have started Tails from DVD without network and logged in
9 And I temporarily create a 4 GiB disk named "gptfat"
10 And I create a gpt partition with a vfat filesystem on disk "gptfat"
11 And I plug USB drive "gptfat"
12 When I start Tails Installer
13 Then I am told by Tails Installer that the destination device "is too small"
15 Scenario: Detecting when a target USB drive is inserted or removed
16 Given I have started Tails from DVD without network and logged in
17 And I temporarily create a 7200 MiB disk named "temp"
18 And I start Tails Installer
19 But a suitable USB device is not found
20 When I plug USB drive "temp"
21 Then the "temp" USB drive is selected
22 When I unplug USB drive "temp"
23 Then a suitable USB device is not found
25 Scenario: Installing Tails with Tails Installer to a used USB drive
26 Given I have started Tails from DVD without network and logged in
27 And I temporarily create a 7200 MiB disk named "install"
28 And I create a gpt partition with a vfat filesystem on disk "install"
29 And I plug USB drive "install"
30 And I install Tails to USB drive "install" by cloning
31 Then the running Tails is installed on USB drive "install"
32 And there is a random seed on USB drive "install"
33 But there is no persistence partition on USB drive "install"
35 Scenario: Installing Tails with Tails Installer to a pristine USB drive
36 Given I have started Tails from DVD without network and logged in
37 And I temporarily create a 7200 MiB disk named "install"
38 And I plug USB drive "install"
39 And I install Tails to USB drive "install" by cloning
40 Then the running Tails is installed on USB drive "install"
41 And there is a random seed on USB drive "install"
42 But there is no persistence partition on USB drive "install"
44 Scenario: Installing Tails with Tails Installer to a used USB drive, cloning the Persistent Storage
45 Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
46 And I create a file in the Persistent directory
47 And I temporarily create a 7200 MiB disk named "install"
48 And I create a gpt partition with a vfat filesystem on disk "install"
49 And I plug USB drive "install"
50 And I install Tails with Persistent Storage to USB drive "install" by cloning
51 Then the running Tails is installed on USB drive "install"
52 And there is a random seed on USB drive "install"
53 And there is a persistence partition on USB drive "install"
54 And the USB drive "install" contains the same files as my persistent storage
56 Scenario: Installing Tails with Tails Installer to a pristine USB drive, without cloning the Persistent Storage
57 Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
58 And I temporarily create a 7200 MiB disk named "install"
59 And I plug USB drive "install"
60 And I install Tails to USB drive "install" by cloning
61 Then the running Tails is installed on USB drive "install"
62 And there is a random seed on USB drive "install"
63 And there is no persistence partition on USB drive "install"
65 Scenario: Re-installing Tails over an existing USB installation with a persistent partition
66 # We reach this first checkpoint only to ensure that the ' __internal' disk has reached the state (Tails installed + persistent partition set up) we need before we clone it below.
67 # This first part is done without Tails Installer (install from Tails USB image)
68 # Note: the "__internal" disk will keep its state across scenarios
69 # and features until one of its snapshots is restored.
70 Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
71 And I have started Tails from DVD without network and logged in
72 And I clone USB drive "__internal" to a temporary USB drive "install"
73 And I plug USB drive "install"
74 # This second part is done with Tails Installer, that's what this scenario is about
75 When I reinstall Tails to USB drive "install" by cloning
76 Then the running Tails is installed on USB drive "install"
77 And there is a random seed on USB drive "install"
78 And there is no persistence partition on USB drive "install"
81 Scenario: Booting Tails from a USB drive in UEFI mode
82 Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
83 And I power off the computer
84 And the computer is set to boot in UEFI mode
85 When I start Tails from USB drive "__internal" with network unplugged and I login
86 Then Tails is running from USB drive "__internal"
87 And the boot device has safe access rights
88 And Tails has started in UEFI mode
90 Scenario: Installing Tails with GNOME Disks from a USB image
91 Given I have started Tails from DVD without network and logged in
92 And I plug and mount a USB drive containing a Tails USB image
93 And I create a 7200 MiB disk named "usbimage"
94 And I plug USB drive "usbimage"
95 And I install a Tails USB image to the 7200 MiB disk with GNOME Disks
97 # Depends on scenario: Installing Tails with GNOME Disks from a USB image
98 Scenario: The system partition is updated when booting from a USB drive where a Tails USB image was copied
100 And I start Tails from USB drive "usbimage" with network unplugged and I login
101 Then Tails is running from USB drive "usbimage"
102 And the label of the system partition on "usbimage" is "Tails"
103 And the system partition on "usbimage" is an EFI system partition
104 And the FAT filesystem on the system partition on "usbimage" is at least 4000M large
105 And the UUID of the FAT filesystem on the system partition on "usbimage" was randomized
106 And the label of the FAT filesystem on the system partition on "usbimage" is "TAILS"
107 And the system partition on "usbimage" has the expected flags
109 Scenario: Error when the GPT backup header is corrupt
111 And I set Tails to boot with options "test_gpt_corruption=gpt_backup,gpt_backup_table"
112 And I create a 7200 MiB disk named "temp"
113 And I plug USB drive "temp"
114 And I write the Tails USB image to disk "temp"
115 And I start Tails from USB drive "temp" with network unplugged
116 Then Tails is running from USB drive "temp"
117 When I log in to a new session
118 And all notifications have disappeared
119 Then the system journal includes message "Detected partitioning-corruption, but not showing any message"
121 Scenario: Error when the disk GUID has not changed
123 And I set Tails to boot with options "test_gpt_corruption=guid"
124 And I create a 7200 MiB disk named "temp"
125 And I plug USB drive "temp"
126 And I write the Tails USB image to disk "temp"
127 And I start Tails from USB drive "temp" with network unplugged
128 Then Tails is running from USB drive "temp"
129 When I log in to a new session
130 And all notifications have disappeared
131 Then I see an error about system partition resizing