early_patch: document ownership for files bind mounted into /home/amnesia
[tails.git] / features / usb_install.feature
blob9313487d4d1e398b41f49d59f05211f1f79238f0
1 @product
2 Feature: Installing Tails to a USB drive
3   As a Tails user
4   I want to install Tails to a suitable USB drive
6   @not_release_blocker
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"
80   @uefi
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
99     Given a computer
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
110     Given a computer
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
122     Given a computer
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