Re: [Tails-dev] next big features: status update

Delete this message

Reply to this message
Author: anonym
Date:  
To: The Tails public development discussion list
Subject: Re: [Tails-dev] next big features: status update
03/08/2012 05:59 PM, intrigeri:
> Hi,
>
> thank you for testing! See replies bellow.
>
> anonym wrote (06 Mar 2012 11:15:06 GMT) :
>> 02/29/2012 07:15 PM, intrigeri:
>>>
>>> The general testing process would be:
>>>
>>> 1. use the USB installer to install Tails on a USB stick
>>> 2. boot the newly installed Tails
>>> 3. use tails-persistence-setup to bootstrap a persistence container
>
>> This step failed once for me with an udisks error stating something
>> like "daemon is inhibited".
>
> The exact error message would be useful.


It was:

    org.freedesktop.UDisks.Error.Inhibited: Daemon is inhibited


>> I'm pretty sure it was because I had set a sudo password in
>> tails-greeter,
>
> Can you please try to confirm this with reproducible experiments?


The first time I got the error like this:

1. Boot a fresh Tails USB install.
2. Don't set sudo password.
3. Start tails-persistence-setup, set a passphrase and press create.
4. Error!
5. Reboot.
6. Set a sudo password.
7. Start tails-persistence-setup, enter password, press create.
8. Success!

I haven't been able to reproduce step 4. I have found another (weird)
way to kinda reliably reproduce it the error, though:

1. Boot a fresh Tails USB install.
2. Run tails-persistence-setup, set a password and press create. It
should work.
3. Reboot.
4. Set a sudo password (needed by GParted below).
5. Use GParted: Remove the TailsData partition, format empty space as
"unallocated" with no label. Apply the changes.
6. Use GParted: Delete the new partition. Apply the changes.
7. Run tails-persistence-setup, set a passphrase and press create.
8. Error!

I ran tails-persistence-setup --verbose, and here's what I got:

    Working on device [...]
    Running step bootstrap
    Entering main Gtk2 loop
    Creating partition of size [...]
    waiting...
    org.freedesktop.UDisks.Error.Inhibited: Daemon is inhibited


After doing the above steps cloning doesn't work either. Here's the log:

    Warning! All data [...]
    Press 'Next' [...]
    Unmounting /dev/sdc
    Daemon is inhibited
    LiveUSB creation failed!
    Daemon is inhibited


Attached is the full log (I ran liveusb-creator -v). Restarting dbus
(and consequently X) fixed it.

Even though the above steps certainly isn't something we want to support
I hope it all can help you identify the original source of the error.
(As a side effect it seems like the above steps (1-8) make Tails on the
USB drive unbootable.)

> Else, I've my doubts wrt. this correlation. "daemon is inhibited"
> looks like a DBus / UDisks error, while anything related with sudo
> would be a PolicyKit error. My first guess would be that you catched
> a bug, unrelated to PolicyKit and sudo, and I want to hunt it.


Sure. I suppose I really wasn't "pretty sure" at all :). It was just a
wild guess based on the fact that it worked as soon as I rebooted and
set a sudo password.

>> * We're currently quite wasteful when allocating space to the Tails
>> partition. On a 1.88 GiB USB stick a whooping 1.46 GiB was allocated
>> for Tails, leaving only 424 MiB for TailsData. The Tails installation
>> I used was just 767 MiB, leaving 732 MiB unused. That seems a bit
>> excessive or do we anticipate wheezy to be that much of a monster?
>
> We decided to give the system partition 1.5GiB like this:
>
> Tails ISO = 1GB
> + 3 * incremental upgrades (60MB) = 180MB
> => let's say 1.5GB
>
> As soon as we want to install multiple kernels, and support *many*
> languages more actively, e.g. by stopping running localepurge at build
> time, installing all iceweasel l10n packages, and perhaps installing
> some more fonts, we'll probably reach 1GB. I anticipate Wheezy to add
> something in the 100-200MB range to the ISO size. The size of
> incremental updates will probably grow accordingly. So frankly, as of
> today, I would probably propose to give 2 GB to the system partition,
> instead of 1.5 GB.
>
> So I don't think it is reasonable to expect a 2 GB USB stick to
> support Tails + persistence.
>
>> I'm not sure what the right approach would be here. It would be
>> sweet to have a slider which goes from $TAILS_ISO_SIZE to
>> min($SIZE_OF_USB_DRIVE,
>> $LARGEST_TAILS_ISO_SIZE_WE_WANT_TO_SUPPORT) which determines the
>> size of the Tails partition. Depending on where the slider is some
>> label would show warnings like:
>
>>   - "This is likely too little space for being able to upgrade Tails in
>>     the future" and
>>   - "This will just leave only $LOW_NUMBER MB of space for persistence"

>
>> when appropriate.
>
> I disagree it would be sweet. I think it would be a mess UI-wise:
> I think this would clutter the GUI and add more complexity to the UI
> by asking users questions they will have a hard time answering, add
> more complexity to our documentation because a more complex UI needs
> much more complex documentation.


These widgets could be hidden behind an "Advanced settings/install"
button and/or could be automatically shown only when a small enough USB
drive is selected, e.g. <=2 GB (but big enough to fit Tails).

> Given these disadvantages, and the limited benefit (better supporting
> 2 GB media), I'm not in favour of adding such widgets at all.


I just fear that we're setting the requirements for Tails too high,
effectively alienating poor people, and unnecessarily preventing fully
adequate devices from being usable with Tails. Speaking for myself, I
got my first >2 GB USB stick just a few months ago.

> And anyway, I don't think anyone wants to add any additional feature
> to our liveusb-creator codebase; remember we want to rebase our work
> on top of another codebase at some point.


IMHO, if this is an issue for us when adding a feature we want, then we
may want to reconsider our whole approach, possibly by maintaining a
fork (gasp! :)). I guess my point is that it seems like a poor argument
to say that "we don't want X since X is hard to get upstream" at least
if X is important for us, which may or may not be the case for this
particular X. In this case, however, I'd actually expect this feature to
be a useful for other distros using liveusb-creator, so why not push
something like that upstream? In the future, of course, since we're on
deadlines.

Here's some more, unrelated suggestions:

* In the liveusb-creator, please add the name of the USB drives' models
to the list of USB devices one can install Tails to.
tails-persistence-setup currently lists the name, but IMHO it's more
important for the installer to do so since that's were the real risk of
selecting the wrong device is.

* When persistence has been successfully setup, prompt the user with an
OK-pop-up containing the success message (and OK -> exit application)
instead of changing the window to contain the success message and asking
users to close it themselves. That seems more streamlined to me.
Otherwise, at least add a close/exit button.

Cheers!
$ liveusb-creator -u -n --clone -P -m -x -v
[creator:1139] extlinux not found! Only FAT filesystems will be supported
[creator:649] Skipping non-usb drive: /org/freedesktop/UDisks/devices/sda
[creator:686] {'bootable': False,
 'device': '/dev/sdb1',
 'free': 732L,
 'fstype': 'vfat',
 'fsversion': 'FAT32',
 'is_optical': False,
 'label': 'Tails',
 'mount': '/live/image',
 'mounted_partitions': set(),
 'parent': '/dev/sdb',
 'parent_udi': '/org/freedesktop/UDisks/devices/sdb',
 'size': 1572846592,
 'udi': '/org/freedesktop/UDisks/devices/sdb1',
 'uuid': '28E9-C739'}
[creator:686] {'bootable': False,
 'device': '/dev/sdb',
 'free': None,
 'fstype': '',
 'fsversion': '',
 'is_optical': False,
 'label': '',
 'mount': None,
 'mounted_partitions': set(),
 'parent': None,
 'parent_udi': None,
 'size': 2017525248,
 'udi': '/org/freedesktop/UDisks/devices/sdb',
 'uuid': ''}
[creator:649] Skipping non-usb drive: /org/freedesktop/UDisks/devices/loop0
[creator:649] Skipping non-usb drive: /org/freedesktop/UDisks/devices/sda1
[creator:649] Skipping non-usb drive: /org/freedesktop/UDisks/devices/sda2
[creator:686] {'bootable': False,
 'device': '/dev/sdc1',
 'free': None,
 'fstype': 'vfat',
 'fsversion': 'FAT32',
 'is_optical': False,
 'label': 'Tails',
 'mount': None,
 'mounted_partitions': set(),
 'parent': '/dev/sdc',
 'parent_udi': '/org/freedesktop/UDisks/devices/sdc',
 'size': 1572846592,
 'udi': '/org/freedesktop/UDisks/devices/sdc1',
 'uuid': '34F1-4256'}
[creator:686] {'bootable': False,
 'device': '/dev/sdc',
 'free': None,
 'fstype': '',
 'fsversion': '',
 'is_optical': False,
 'label': '',
 'mount': None,
 'mounted_partitions': set(),
 'parent': None,
 'parent_udi': None,
 'size': 7790493696L,
 'udi': '/org/freedesktop/UDisks/devices/sdc',
 'uuid': ''}
[creator:705] {'/dev/sdb': set(['/org/freedesktop/UDisks/devices/sdb1'])}
[gui:415] drives: {'/dev/sdb': {'parent': None, 'mounted_partitions': set([]), 'free': None, 'fstype': '', 'fsversion': '', 'device': '/dev/sdb', 'is_optical': False, 'size': 2017525248, 'udi': '/org/freedesktop/UDisks/devices/sdb', 'uuid': '', 'bootable': False, 'mount': None, 'label': '', 'parent_udi': None}, '/dev/sdc': {'parent': None, 'mounted_partitions': set([]), 'free': None, 'fstype': '', 'fsversion': '', 'device': '/dev/sdc', 'is_optical': False, 'size': 7790493696L, 'udi': '/org/freedesktop/UDisks/devices/sdc', 'uuid': '', 'bootable': False, 'mount': None, 'label': '', 'parent_udi': None}}
[gui:419] Skipping source device: /dev/sdb
[gui:515] Device is not yet mounted, so we cannot determine the amount of free space.  Setting a maximum limit of 8G for the persistent storage.
[creator:553] /dev/sdc selected: {'parent': None, 'mounted_partitions': set([]), 'free': None, 'fstype': '', 'fsversion': '', 'device': '/dev/sdc', 'is_optical': False, 'size': 7790493696L, 'udi': '/org/freedesktop/UDisks/devices/sdc', 'uuid': '', 'bootable': False, 'mount': None, 'label': '', 'parent_udi': None}
[creator:1051] Checking the MBR of /dev/sdc
[creator:1055] mbr = 'FA31'
[creator:1051] Checking the MBR of /dev/sdc
[creator:1055] mbr = 'FA31'
[creator:1051] Checking the MBR of /dev/sdc
[creator:1055] mbr = 'FA31'
[creator:1051] Checking the MBR of /dev/sdc
[creator:1055] mbr = 'FA31'
[creator:809] Unmounting /dev/sdc
[creator:811] {'bootable': False,
 'device': '/dev/sdc',
 'free': None,
 'fstype': '',
 'fsversion': '',
 'is_optical': False,
 'label': '',
 'mount': None,
 'mounted_partitions': set(),
 'parent': None,
 'parent_udi': None,
 'size': 7790493696L,
 'udi': '/org/freedesktop/UDisks/devices/sdc',
 'uuid': ''}
[creator:327] ['/sbin/sgdisk', '--print', '/dev/sdc']
[creator:327] ['/sbin/sgdisk', '--info', '1', '/dev/sdc']
[gui:279] org.freedesktop.UDisks.Error.Inhibited: Daemon is inhibited
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/liveusb/gui.py", line 196, in run
    self.live.partition_device()
  File "/usr/lib/python2.6/dist-packages/liveusb/creator.py", line 831, in partition_device
    dev.PartitionTableCreate('gpt', [])
  File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 68, in __call__
    return self._proxy_method(*args, **keywords)
  File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 140, in __call__
    **keywords)
  File "/usr/lib/pymodules/python2.6/dbus/connection.py", line 630, in call_blocking
    message, timeout)
DBusException: org.freedesktop.UDisks.Error.Inhibited: Daemon is inhibited