2 Feature: Installing Tails to a USB drive
4 I want to install Tails to a suitable USB drive
6 # XXX: rename to tails_installer.feature and move things that don't use Tails
9 Scenario: Try installing Tails to a too small USB drive without partition table
10 Given I have started Tails from DVD without network and logged in
11 And I temporarily create a 4500 MiB disk named "too-small-device"
12 And I start Tails Installer
13 But a suitable USB device is not found
14 And no USB drive is selected
15 When I plug USB drive "too-small-device"
16 Then I am told by Tails Installer that the destination device "is too small"
17 And no USB drive is selected
18 When I unplug USB drive "too-small-device"
19 And I temporarily create a 7200 MiB disk named "big-enough"
20 And I plug USB drive "big-enough"
21 Then the "big-enough" USB drive is selected
23 Scenario: Try installing Tails to a too small USB drive with GPT and a FAT partition
24 Given I have started Tails from DVD without network and logged in
25 And I temporarily create a 4 GiB disk named "gptfat"
26 And I create a gpt partition with a vfat filesystem on disk "gptfat"
27 And I plug USB drive "gptfat"
28 When I start Tails Installer
29 Then I am told by Tails Installer that the destination device "is too small"
31 Scenario: Detecting when a target USB drive is inserted or removed
32 Given I have started Tails from DVD without network and logged in
33 And I temporarily create a 7200 MiB disk named "temp"
34 And I start Tails Installer
35 But a suitable USB device is not found
36 When I plug USB drive "temp"
37 Then the "temp" USB drive is selected
38 When I unplug USB drive "temp"
39 Then a suitable USB device is not found
41 Scenario: Installing Tails to a used USB drive
42 Given I have started Tails from DVD without network and logged in
43 And I temporarily create a 7200 MiB disk named "install"
44 And I create a gpt partition with a vfat filesystem on disk "install"
45 And I plug USB drive "install"
46 And I install Tails to USB drive "install" by cloning
47 Then the running Tails is installed on USB drive "install"
48 But there is no persistence partition on USB drive "install"
50 Scenario: Installing Tails to a pristine USB drive
51 Given I have started Tails from DVD without network and logged in
52 And I temporarily create a 7200 MiB disk named "install"
53 And I plug USB drive "install"
54 And I install Tails to USB drive "install" by cloning
55 Then the running Tails is installed on USB drive "install"
56 But there is no persistence partition on USB drive "install"
58 Scenario: Re-installing Tails over an existing USB installation with a persistent partition
59 # 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.
60 # This first part is done without Tails Installer (install from Tails USB image)
61 Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
62 Given I have started Tails from DVD without network and logged in
63 And I clone USB drive "__internal" to a temporary USB drive "install"
64 And I plug USB drive "install"
65 # This second part is done with Tails Installer, that's what this scenario is about
66 When I reinstall Tails to USB drive "install" by cloning
67 Then the running Tails is installed on USB drive "install"
68 And there is no persistence partition on USB drive "install"
70 Scenario: Booting Tails from a USB drive without a persistent partition and creating one
71 Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
72 And I log in to a new session
73 When I create a persistent partition
74 Then a Tails persistence partition exists on USB drive "__internal"
76 Scenario: Booting Tails from a USB drive without a persistent partition
77 Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
78 When I log in to a new session
79 Then Tails is running from USB drive "__internal"
80 And the persistent Tor Browser directory does not exist
81 And there is no persistence partition on USB drive "__internal"
85 Scenario: Booting Tails from a USB drive in UEFI mode
86 Given I have started Tails without network from a USB drive without a persistent partition and stopped at Tails Greeter's login screen
87 Then I power off the computer
88 Given the computer is set to boot in UEFI mode
89 When I start Tails from USB drive "__internal" with network unplugged and I login
90 Then the boot device has safe access rights
91 And Tails is running from USB drive "__internal"
92 And the boot device has safe access rights
93 And Tails has started in UEFI mode
95 Scenario: Installing Tails to a USB drive with an MBR partition table but no partitions, and making sure that it boots
96 Given I have started Tails from DVD without network and logged in
97 And I temporarily create a 7200 MiB disk named "mbr"
98 And I create a msdos label on disk "mbr"
99 And I plug USB drive "mbr"
100 And I install Tails to USB drive "mbr" by cloning
101 Then the running Tails is installed on USB drive "mbr"
102 But there is no persistence partition on USB drive "mbr"
103 When I shutdown Tails and wait for the computer to power off
104 And I start Tails from USB drive "mbr" with network unplugged and I login
105 Then Tails is running from USB drive "mbr"
106 And the boot device has safe access rights
107 And there is no persistence partition on USB drive "mbr"
109 Scenario: Writing a Tails isohybrid to a USB drive and booting it, then installing Tails on top of it using Tails Installer, and it still boots
111 And I temporarily create a 7200 MiB disk named "isohybrid"
112 And I write the Tails ISO image to disk "isohybrid"
113 And I start Tails from USB drive "isohybrid" with network unplugged and I login
114 Then Tails is running from USB drive "isohybrid"
115 When I shutdown Tails and wait for the computer to power off
116 And I start Tails from DVD with network unplugged and I login
117 And I install Tails to USB drive "isohybrid" by cloning
118 Then the running Tails is installed on USB drive "isohybrid"
119 But there is no persistence partition on USB drive "isohybrid"
120 When I shutdown Tails and wait for the computer to power off
121 And I start Tails from USB drive "isohybrid" with network unplugged and I login
122 Then Tails is running from USB drive "isohybrid"
123 And the boot device has safe access rights
124 And there is no persistence partition on USB drive "isohybrid"
126 Scenario: The system partition is updated when booting from a USB drive where a Tails USB image was copied
128 And I temporarily create a 7200 MiB disk named "usbimage"
129 And I write the Tails USB image to disk "usbimage"
130 And I start Tails from USB drive "usbimage" with network unplugged and I login
131 Then Tails is running from USB drive "usbimage"
132 And the label of the system partition on "usbimage" is "Tails"
133 And the system partition on "usbimage" is an EFI system partition
134 And the FAT filesystem on the system partition on "usbimage" is at least 4000M large
135 And the UUID of the FAT filesystem on the system partition on "usbimage" was randomized
136 And the label of the FAT filesystem on the system partition on "usbimage" is "TAILS"
137 And the system partition on "usbimage" has the expected flags