How to adapt raspberry pi's piclone code to run under Manjaro?

I have recently switched from Raspberry Pi OS to Manjaro/Plasma to gain the benefits of a rolling release distro for my Pi 4B. As I use the Pi as my main PC, the ease of making back-ups using piclone had previously been a great advantage. I have coding experience, but I am not a systems person. Is it possible to adapt the bash code published at https://github.com/raspberrypi-ui/piclone/archive/master.zip to run under Manjaro, and if so, what changes need to be made to the code to reference the relevant input and output destinations?

I am currently working on EXACTLY that.
I started a long time ago when starting to use armbian.

Dm me and I can give you some advice or even share my script.

It works on rpi, armbian and manjaro-arm at this moment.
Can toggle autoexpand and all that jazz.

Edit
I can share it here if that is ok, but Iā€™m not sure the forum would appreciate that in this part of the forumā€¦?

edit2
Sorry, I missread your post, my script does not do what partclone does. It is more like what image-backup does. mb

For debian it depends on these:

parted, dosfstools, e2fsprogs, coreutils, mount, uuid, zenity, dbus-x11, libgtk-3-0

Which on Arch/Manjaro translated to:

parted, dosfstools, e2fsprogs, coreutils, util-linux, zenity, dbus-x11, gtk3

But I also see noted elsewhere that gvfs is required.
So ā€¦ the whole deps should be

parted dosfstools e2fsprogs coreutils util-linux zenity dbus-x11 gtk3 gvfs

Aside from that ā€¦ does the manual build as described in the README not work ?

I was tired and bored - nice little challenge on sunday afternoon.

I donā€™t know if it works - I could compile it and build the package - no other testing has been done.

See below in comment #6

1 Like

@linux-aarhus

I also messed with it this mourning and later on after you last posted. This afternoon I discovered that data/pwdpic.sh did not make it to the package to be installed as /usr/lib/piclone/pwdpic.sh. This was needed for elevated privileges and is called up in the piclone.desktop file in /usr/share/applications/. Does this file make it in your created install package? I was using my PKGBUILD hereā€¦

piclone.desktop entry:

Exec=env SUDO_ASKPASS=/usr/lib/piclone/pwdpic.sh sudo -AE dbus-launch piclone

After making the necessary corrections I was able to clone my sdcard to another. It complained about ā€œNot able to set flagsā€ when it was done but I was able to boot on the cloned sdcard just fine with no issues.

I missed that one - likely tired :sleepy: - I have amened the PKGBUILD and now it takes care of the passwd script as well.

I will check on a pi with a desktop now.

When I got the copy of the password prompt right - forgotten how install worked - I tested on a Gnome desktop - and it works as expectd - I donā€™t know if gvfs is strictly required - if it is it should be moved to depends instead of optdepends.

Testing using minimal manjaro CLI (with added lxqt desktop) - I found that gvfs is required to register change in attached devices.

Next I found that setting new guids would fail because uuid is not a known command on arch but uuidgen is.

The updated PKGBUILD has been uploaded to AUR [1] so you can do

git clone https://aur.archlinux.org/piclone
cd piclone
makepkg -is

The last thing to test is the Could not set flags message - this is caused by the code setting lba flag on a non fat32 partition - it can be ignored.

The app will also try to eject the target but it will fail because it is assuming lxde - which is the default environment for raspberry pi os.

So I am looking at using udisksctl instead.

All this will require yet another patch - which is a challenge in itself - as I have absolutely no knowledge of C language - it looks familiar though so ā€¦ one is optimistic

final patch arrived - everything works now

2 Likes

Sorry for time taken to get back to this thread, but I tried this suggested solution and got the following result:

[petern@Rpi ~]$ git clone https://aur.archlinux.org/piclone
Cloning into ā€˜picloneā€™ā€¦
remote: Enumerating objects: 32, done.
remote: Counting objects: 100% (32/32), done.
remote: Compressing objects: 100% (28/28), done.
remote: Total 32 (delta 4), reused 32 (delta 4), pack-reused 0
Receiving objects: 100% (32/32), 7.79 KiB | 1.95 MiB/s, done.
Resolving deltas: 100% (4/4), done.

which seemed OK so far. However when I tried to run makepkg I got the following error:

[petern@Rpi ~]$ cd piclone
[petern@Rpi piclone]$ makepkg -is
==> ERROR: Cannot find the fakeroot binary.
[petern@Rpi piclone]$

Where did it (or I !) go wrong?

build using custom scripts require the base-devel package

OK, linux-aarhus, but as I said in my post at the head of this thread, I am not a systems person. If I download base-devel, what do I do next?

makepkg -si

So near and yet so far! Iā€™ve now got piclone set up, but ā€”

  1. If I run it as normal user, I can select the source and destination, but attempting to run it results in a crash because Iā€™m not starting it as administrator.

  2. If I try to run it under sudo, the source and target drop-down lists are empty.

  3. If Itry to use su, I get the error message
    Error creating proxy: The connection is closed (g-io-error-quark, 18)

So what next?

What next indeed! After sending my last post I reverted to ā€œnot systems personā€ mode, and found SD Card Copier on the Application Launcher. It performed perfectly (and faster than the version on my old Raspberry Pi OS) to provide the backup copy from which I booted the Pi to send this post.

Thanks to all who helped me along the way, despite my own inexperience!

Yeah it will not run from the command prompt with sudo. The piclone.desktop entry Exec= sets up an enviorment to run in.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.