Code Monkey home page Code Monkey logo

aubacke's Introduction

AuBackE - Autarkic Backup External

A small bootable backup-tool based on rsync

Ingredients

See build.sh

Base: TinyCore Linux

build.sh includes option for 32 or 64 bit.

Additional TCZ-Packages (placed in tcz-dir):

  • kmaps (for supporting other then US-keyboards)
  • rsync, popt (actual backup is done using this)
  • python (for AuBackE frontend)
  • parted (detecting partitiontypes and -labels)
  • filesystems (for additional filesystem support like xfs, reiserfs, jfs etc.)
  • ntfs-3g (for supporting NTFS-partitions)
  • setfont (if you don't want the default terminal font.)
  • terminus-font, or any other font. Place it in external-dir.
  • readline, ncurses, ncurses-common, ncurses-terminfo (readline-support in AuBackE for a better input-experience)
  • you can also include any other TCZ you want... dependencies are resolved by build-skript

Actual sources are:

  • ~/.ashrc (invoking AuBackE on first login, created in build.sh)
  • aubacke.py (the program itself)

For building initial ramdisk you need:

  • cpio (for extracting the TC-ramdisk)
  • 7z (for a tighter recompression, optional)

For using veracrypt, place matching cli-binary in external/$ARCH. (Well, that was working with truecrypt, but veracrypt doesn't execute in TC. I don't know why. So... no veracrypt at the moment.)

Building

Create ramdisk

For building the modified tinycore-image, edit & execute build.sh

A BUILD-dir containing all needed files is created:

  • aubacore_$ARCH.gz (ramdisk)
  • vmlinuz (kernel)

Prepare external drive

You can copy them to a partition on you external drive and install a bootloader. For example sys-/extlinux or grub.

In the examples below, the framebuffer is set to 1024x768 which is fine for the default-font. Something lower like 800x600 will also work (I tried to limit the output to about 100 columns). But if you don't intend to use this script on computers with very, very old low-res screen, I recomment using at least 1024x768 and/or a smaller font (see build.sh) as you want as much output as possible visible on the screen.

For extlinux

  • Install the MBR to the external drive: ./extlinux -i /mnt/ext3partition ./syslinux -d . -i /dev/sdc1
  • Set the partition to active / bootable
  • create extlinux.conf:
    DEFAULT aubacke
    LABEL aubacke
      KERNEL /aubacke/vmlinuz
      APPEND initrd=/aubacke/aubacore.gz loglevel=3 noswap norestore multivt kmap=qwertz/de-latin1 loop.max_loop=256 vga=791

For GRUB

  • grub-install --root-directory=/mnt/usb/stick /dev/sdc
  • you probably have to copy some grub-files and edit the device.map
  • Set the partition to active / bootable
  • create menu.lst:
    hiddenmenu
    timeout   0
    default   0
    title AuBackE
    root (hd0,1)
    kernel /boot/vmlinuz loglevel=3 noswap norestore multivt kmap=qwertz/de-latin1 loop.max_loop=256 vga=791
    initrd /boot/aubacore.gz

For UEFI

  • create GPT partition table, 2 Partitions: ~50MB VFAT and the rest as whatever you like. Don't need ESP. install grub:
    mount /dev/sdh1 /mnt
    mkdir /mnt/boot
    mkdir /mnt/efi
    grub-install --target x86_64-efi --efi-directory /mnt/efi/ --removable --boot-directory=/mnt/boot
    cp -t /mnt/boot aubacore.gz vmlinuz
  • Edit /boot/grub/grub.cfg:
    linux /boot/vmlinuz loglevel=3 noswap norestore multivt kmap=qwertz/de-latin1 loop.max_loop=256 vga=791
    initrd /boot/aubacore.gz

TinyCore Sheetcodes

Of course, you should modify the kernel-options to your liking, see TC-FAQ

Bugs

If no storage-devices are present the script behaves quite bitchy, but it also is completely useless without any storage-device. So I won't fix it.

At the moment, it is not possible to change from one ProfileStore to another. The one you select at startup remains the active one forever.

Veracrypt doesn't work. (Binary won't execute in TC. Why?)

Btrfs should be work in tinycore, but doesn't mount in current version (11.x)

ToDo

  • Internationalization
  • Possibility to change ProfileStore on runtime
  • possibility to dump raw partition (for encrypted or unsupported partitions)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.