esesen

From Cliquesoft
Jump to: navigation, search

With all the daily activities that users have their computers go through, one could expect that over time the software on these devices usually becomes cluttered with unused and/or unwanted files, settings, and data as well as some kind of problem just waiting for the opportunity to halt your progress when you have to get something done yesterday! And what is the normal fix? Call your support staff and wait for them to work you into their schedule for the repairs. What if there was a way for you to fix the problem easily? Introducing Esesen. This software can return the device to an out-of-the-box state so that your productivity is as high as it was on the first day it was unpackaged! Not to be confused with the Windows restore feature, this software replaces your entire system with one that you choose to restore instead of a couple of files that Windows restore will replace (but often times does not actually resolve the problem and occasionally creates new problems).

Administrators will enjoy the variety of configuration options that pertain to this software including local and/or remote storage of images, optional WAN connectivity, and the ability to schedule automated restores in order to keep your home or business network in a constantly pristine state. And for those admins that are familiar with ssh, this software provides a way to remotely gain access into a workable system to perform any detailed modifications to the device that may be required.


License

This project's codebase is licensed under the CPLv2 unless a valid CPLv1 license has been purchased. More information about both of these licenses can be found under the "Our Licenses" link of our homepage.



Overview

Esesen was designed to keep a device working at its optimal performance at all times by periodically re-imaging it back to a fresh state as defined by the manufacturer, your administrator, or support staff containing little or no "contamination". With the use of this software on all the computers in your home or office, along with implementing the automated scheduling aspect, the result should end up becoming a self sustaining network (SSN aka Esesen)!

Of course problems can arise between the scheduled re-imaging, such as accidental deletion or updates that cause unintended consequences. Pick up some malware or get hit with Ransomware where your computers' contents are completely encrypted by a malicious attacker? How about a hardware failure? All of these would cause serious downtime for a home or business, but devices utilizing Esesen do not have to worry about a thing! The user has the ability to go into Esesen at any time in order to restore back to a known working state. For situations such as a drive failure or ransomware, booting off of an Esesen live CD or flash drive (after a hard drive replacement if applicable) will quickly get you back up and running - in some instances, within minutes!

So who would benefit from using this software? As mentioned above, home users and business owners would definitely benefit from having this software installed on their networked computers. Additionally, labs, schools, or any other organizations that may need to have equipment restored to an unmodified state after testing or usage by unknown users or third parties.

Lastly, there are several points to mention that distinguish Esesen from other imaging software:

* Imaging can be scheduled to perform automatic restores per device
* Instead of just a single image available for restore, there can be up to nine manually created images as alternatives per device
* The software can be configured to retain any saved user data (under /home or C:\Users)
* Works with Linux and Microsoft Windows file systems natively: ext2/3/4, Fat16/32, NTFS; uses 'dd' for all other formats

Caveats

As of the 2018.12.x.x version of the software, there are a couple of caveats that should be brought to your attention. As future versions are released, most of these will be resolved:
* If the device uses legacy MBR for its boot media and a local storage partition is desired, the total number of partitions beforehand can not exceed 3 primary (no logical); GPT does not have any limitations
* When using .squash files to retain users data, NTFS partitions have a fair amount of post-processing so be patient
* Analytics are not yet available
* The "DATA" partition can only be ext2/3/4 or NTFS currently
* Interaction with Ext/Fat file systems, the progress meter is just an approximate value and may exceed or not reach 100% even though it did process everything correctly
* Esesen has only been tested with traditional, single-disk computers; mileage may vary with different configurations so let us know
* Currently only identifies and works with (patches for other bootloaders are welcome):
Linux: (legacy) grub(2), syslinux
Windows: ntldr (XP and prior), winload (Vista and after)
* All software updates will have to optionally be reinstalled after re-imaging since the device will be completely reverted to its state at the time the image was made
* After a drive failure, the disk must be replaced with the same size or larger since Esesen can not re-image different sized disks currently
* The partition containing the Windows OS must be MBR, not GPT due to limitations of the bootloader; storage disks (e.g. DATA) can be GPT however
* Currently the only network shares that can be used are SSH; future versions will allow for Linux and Windows shares (NFS and CIFS)
* The DATA partition can only be Fat32/NTFS when using Windows (since those are the only filesystems that currently work with Esesen and Windows)
* The password to access the network share is the same as the access to the admin and config screens; future versions will separate these two

Best Practices

Below we will outline several best practices to keep in mind when using the software to give you the best experience as possible. Since this software is still in beta, these will be updated as time goes by.
* The quickest method of re-imaging a device is by using a local storage partition (networking is the slowest) and is highly recommended
* If using a local storage partition, it is recommended to sync those images to a secondary device (in the event of drive failure or ransomware attack)
* Do NOT leave the drive known as your DATA plugged into a computer as malware/ransomware could infect that too causing you problems
* If your DATA is a networked drive, configure it as readonly to prevent any alteration of the device image(s)
* Esesen is NOT a backup software for your data! Implement a good backup strategy (see our backup software) to cover that aspect.
* When creating the devices' default image, do NOT include any user data (afterwards is ok) since any files that are in the image can overwrite what exists on the drive
* Make a backup of the Esesen configuration after completing that step
* It is a good idea to have at least one copy of bootable 'Esesen OS' medium (e.g. flash drive, CD, etc) handy in the event of drive failure or ransomware attack
* We welcome any contributions from our users and the community


History

Prior to version 2018.12.x.x, this software was used exclusively by Digital Pipe Inc (the parent company to Cliquesoft) with its own customers. Its abilities were very basic and lacked most of the feature set brought about in the 2018.12.x.x public release. As a result, the baseline for any information here will start with that release up to the present.
2018.12.x.x The first public release


Roadmap

To address some of the caveats described above and to expand the software as time progresses, we have outlined some items below that we would like to accomplish.
* Add Android and Mac support
* Add support for newer GPT bootdisks (see gldr project)
* Expand the number of file systems that can be processed natively including: exFat, HPFS (Apple), etc; this may require using partclone
* Update the backend software to more recent versions
* Add archivemount, curlftpfs, and dd_rescue
* Add analytics
* Configurable option to have Esesen to automatically install the OS updates post-restore
* Add disk-to-disk imaging
* Add the ability to image different sized disks
* Add a graphical interface and installers
* Add more bootloaders to work with
* Add the ability to use Linux and Windows shares (NFS and CIFS)
* Resolve the non-100% completion output with 'pv' when interacting with ext/fat partitions
* Implement reverse ssh, VNC connections for end-user initiated assistance
* Update the backend to work with network shares for DATA (as indicated by the installers)
* We welcome any contributions from our users and the community



Installation

Just like the rest of our software, we have engineered our installation process to be as simple as possible. After downloading the desired version from our website, you can begin the installation process. Currently this process only has a text-based installer, but we will be adding graphical capabilities in a future version. Below we will cover the steps necessary to get the software installed.

File Types

Before we continue with the individual steps, it is important to define what the various file types are and the intended application for them. Currently there are four different downloads that are available for this software with each containing advantages and disadvantages.
Standalone App
This is the application itself which allows integrators, developers, or hobbyists to do whatever they would like. Since the project is open source, it can be audited, modified, redistributed, etc without any permission or royalties to Cliquesoft. Since this is just the application by itself, the user will need to make sure that it works in whatever environment it is placed - mileage may vary when using the software this way. Patches are welcomed to help make the application work in a broader fashion.
Live OS
As a bootable "live" instance of the software, this can give the user a way to play with the software without making any changes to the device itself - available in iso (CD/DVD) and img (flash/hard drive) formats. This is also the method to use if you need to recover from a drive failure or ransomware attack. The only known disadvantage to this method is that you have extra work to create boot media initially or as updates are released. The main advantages here are:
* You can boot your computer no matter what so it can be re-imaged to get working again
* This can be used as Esesen installation media Esesen for Linux and Windows
* You do not have to worry about updating the Esesen software on the device itself (and then re-imaging to include that update). An update just consists of burning the newer Esesen version to media.
Linux Installer
There are many different distros of Linux covering a wide range of niches. This file will allow you to install Esesen from within a running instance of your flavor of Linux and has minimal prerequisites which include the presence of the /opt and /boot directories and a supported bootloader (currently legacy grub, grub2, and syslinux). There should not be any restrictions on MBR or GPT usage since Esesen just appends to your current configuration. The main advantage here is the ease in which to install Esesen. The main disadvantages to using this method are:
* The possibility of not being able to use a local storage partition (if using MBR and have more than 3 partitions)
* An update to Esesen will require the creation of a new image afterwards since it will be installed on the partition that gets re-imaged
Windows Installer
Just like the "Linux Installer" above, this file contains everything necessary to install Esesen within a running instance of Windows itself. Also like the Linux variant, the same pro's and con's apply here as well with one additional con - Esesen will currently only work with MBR disks that contain the Windows operating system. We are working to expand into the new GPT disks, but this will be after a future version or two.


Steps

Now that we have covered what the individual files available for download are catering to, grab which one best fits your requirements and lets start to walk through the process of getting the Esesen software installed so it can be used. Each of the steps below are necessary for each file except where noted.
1. Extract: In this example we will assume that the file has been downloaded to your Desktop. Microsoft Windows users just need to double click their installer to have the files extracted, whereas Linux users can double-click the file to open the archive extracting application, select all the archives contents, and then extract to the desktop. Now that there is an "Esesen" folder on your desktop, double-click to open it and proceed to the next step.
2. Install: Depending on which file you downloaded, this step varies. Also this documentation will only cover the "Live OS" and "Installer" files mentioned above with the former being covered in sub-section A and the latter in sub-section B below:
A. Live OS: For users whose computer is running Windows 7 and above can simply insert a blank disc in your drive tray, right-click the "Esesen.iso" file, select "Burn disc image", select your optical drive from the list, and click the "Burn" button to complete this step. Those who are using Windows Vista or below, you will need to install supplemental software to burn the .iso file to disc. Some computer manufacturers may include a software to perform these tasks by default while others will require you to find and install your own. You may first want to check if you have any of the following installed by default: Nero, ImgBurn, InfraRecorder, or CDBurnerXP. Although you can use any software to burn the .iso, this tutorial will be covering the included ImgBurn application. After double-clicking the 'Windows Installer.exe' file and going through its wizard, simply start the application and select 'Write image file to disc' from the menu. Afterwards another window should popup allowing you to configure additional options before burning. Make sure to select the appropriate image file in the 'Source' section by clicking the 'Browse' icon (folder with magnifying glass), then the medium to write to in the listbox located in the 'Destination' area. Additionally you can select the burn speed (or leave it set to 'auto' or 'AWS') and if you want to verify the disc contents after the burn has completed (as a way to validate the data that was written). Finally, click the large image at the bottom-left (of a file being transferred to a CD) to begin the process. There are two included images below to help:
Although this issue has been raised with the CDBurnerXP staff (see this post), we have switched to using ImgBurn as the default included iso burning software due to sourceforge.net marking the files that included it as potential malware. The instructions for using this software will remain for any users that already have it installed. To begin, simply start the application and select 'Burn ISO Image' from the menu. Afterwards another window should popup allowing you to configure additional options before burning. Make sure to select the appropriate image file in the top textbox by clicking the '...' button, then the medium to write to in the listbox located below the afore mentioned textbox, and finally check the 'Disc at Once' and 'Finalize disc' options along with clicking the 'Burn disc' button. There are two included images below to help:
For those using a Linux operating system, you will need a different set of applications than those mentioned above in order to install XiniX to your desired media. Some Linux distros may include this software by default while others will require you to install it from their software repositories (which is outside the scope of this document). If you would like to use the graphical environment to perform this task, we will describe using the K3B application. Simply start the application and select 'Burn Image' from the 'Tools' menu. Afterwards another window should popup allowing you to configure the options before burning. Make sure to select the appropriate image file in the top textbox, the medium to write to in the listbox located towards the middle of the popup, check the 'Verify Written Data' towards the bottom, and finally click the 'Start' button. There are two included images below to help:
In the event you would like to accomplish this using the command line, you will need to obtain either the 'cdrtools' or 'wodim' software from your repository. Afterwards, you will need to issue the following commands (assuming we will be using the /dev/dvd device to write the image too):
$ cdrecord -v -dao -eject dev=/dev/dvd /location/to/file/esesen.iso
Issuing the last command above should present you with output similar to the following, upon having a successful installation:
...snip...
Blocks total: 336601 Blocks current: 336601 Blocks remaining: 4323
RBlocks total: 346489 RBlocks current: 346489 RBlocks remaining: 14211
Starting to write CD/DVD at speed 12 in real TAO mode for single session.
Last chance to quit, starting real write    0 seconds. Operation starts.
Waiting for reader process to fill input buffer ... input buffer ready.
Performing OPC...
Starting new track at sector: 0
Track 01:  648 of  648 MB written (fifo 100%) [buf  99%]  12.1x.
Track 01: Total bytes read/written: 680501248/680501248 (332276 sectors).
Writing  time:  400.168s
Average write speed  11.9x.
Min drive buffer fill was 99%
Fixating...
Fixating time:   22.958s
cdrecord: fifo had 10719 puts and 10719 gets.
cdrecord: fifo was 0 times empty and 10592 times full, min fill was 93%.


B. Installers: With the "Esesen" folder contents shown, locate the "install" file (Note: Windows users may see a ".bat" file extension; Linux users will see a ".sh" file extension) and double-click it to start the installation. A series of questions will be asked:
(I) The first question is going to ask you which partition should be used as the "DATA" to store all the images created for the device. This can be an existing partition on the same drive containing the Operating System (OS) itself, a partition of another internal drive, or any attached hard drive via USB, eSATA, firewire, etc. However, it can NOT be the partition containing the OS itself for obvious reasons. If you wish to use a network share, you will need to enter the word "share" (without quotation marks) to bypass any processing for a locally attached "DATA".
Please note that the network share for DATA does not work in the current version of Esesen and that further backend updates will resolve this problem.
(II) The next several questions all pertain to the scheduling of Esesen to perform automated restores of the device. They will be very basic and asks things like the day of the week and the time. it is important to note however, that the time entered must be in 24-hour format, meaning 1pm should be entered as '13:00', 2pm as '14:00', etc.
3. Configure: Now that the Esesen software has been installed, it will need to be configured for the device. Reboot (off the optical media created for the "Live OS" installs) and select the "Repair this device" menu option and/or "Text Interface" depending on your bootloader. This will bring you to the main Esesen screen where you will need to go into the configuration of the application by pressing the 'C' button. There are numerous options available on this screen which are covered in the [Interfaces] section below.


NOTES
* Help with a failure of any of the steps above can be found in our forums



Uninstallation

Hopefully your choice to uninstall the software isn't a permanent one, but in the event that you do need to perform this function, Esesen provides uninstall scripts to make this as easy as possible. Linux users have a variety of choices for their graphical environment, so we will document the procedures that will universally work. Start by opening a terminal/console window and navigate to the "/opt/Esesen" directory. From there, simply call the "uninstall.sh" script (using "sudo" if you are a normal user):

# cd /opt/Esesen
/opt/Esesen # sudo ./uninstall.sh

For Microsoft Windows users, the uninstall process can be started by going into your "Control Panel" or "Settings" (depending on the version of Windows), and then opening the "Add/Remove Programs" (Windows 2k/XP), "Programs and Features" (Windows Vista/7/8), "System > Apps & Features" (Windows 10). This will bring up a screen showing all the currently installed software. Scroll through the list until you find the "Esesen" entry and click it to expose an "Uninstall" or "Uninstall/Change" button (which can be in various locations depending on the version of Windows being used). Click that button to start the uninstall process. Alternatively, you can open a command prompt window and navigate to "C:\Program Files\Esesen" where you can run the "uninstall.bat" file:

C:\Users\owner> cd "c:\program files\esesen"
C:\Program Files\Esesen> uninstall.bat

If any of those attempts fail, you can manually remove the Esesen software by performing the following steps while in the host operating system. Also note, that these steps pertain to installs on the host OS partition. If Esesen was installed to its own partition, simply delete that partition and any files/directories listed below:

Linux
# rm /etc/cron.d/esesen
# rm /boot/core32-vmlinuz
# rm /boot/xinix.i32.gz
# rm /boot/Esesen.pbr
# rm -R /opt/Esesen
To reset the bootloader menu back to its pre-Esesen state, find which file below exists and follow the steps outlined:
# ls /boot/grub/40_custom.org
/boot/grub/40_custom.org
# sudo mv /boot/grub/40_custom.org /etc/grub.d/40_custom
# sudo grub-mkconfig -o /boot/grub/grub.cfg
# ls /boot/grub/menu.lst
/boot/grub/menu.lst
# sudo mv /boot/grub/menu.lst.org /boot/grub/menu.lst
# ls /boot[/extlinux]/extlinux.cfg.org
/boot[/extlinux]/extlinux.cfg.org
# sudo mv /boot[/extlinux]/extlinux.cfg.org /etc[/extlinux]/extlinux.cfg
# ls /boot[/syslinux]/syslinux.cfg.org
/boot[/syslinux]/syslinux.cfg.org
# sudo mv /boot[/syslinux]/syslinux.cfg.org /etc[/syslinux]/syslinux.cfg
Windows All
C:\Users\owner> SchTasks /Delete /TN "Esesen" /F
C:\Users\owner> regedit /s "C:\Program Files\Esesen\Registry\uninstall.reg"
C:\Users\owner> del C:\grldr*.*
C:\Users\owner> del C:\Esesen.pbr
C:\Users\owner> del C:\menu.lst
C:\Users\owner> rmdir /q /s "C:\Program Files\Esesen"
Windows 2k/XP
C:\Documents and Settings\owner> xcopy /y /q /h /r /k C:\boot.org C:\boot.ini
C:\Documents and Settings\owner> rm C:\boot.org
Windows Vista/7/8
C:\Users\owner> bcdedit /delete {11111111-1111-1111-1111-111111111111}


NOTES:

* Receiving any final message other than "Esesen has been uninstalled successfully!", you should contact your support staff or visit our forums.
* In the event of a failure, sometimes running the uninstaller multiple times will resolve the problem and continue the process until completed successfully.



Interfaces

By default, the software will launch the automated restoration which will automatically start Esesen in a non-interactive mode to simply restore the image tagged as the "current" one (which is the default image created for the device unless any manual images have been created and marked as such). In the event you would like to configure, install, or perform some type of administrative function with the software, or manually perform a backup, rescue, or restore, there are two ways to interact with Esesen. During the booting phase of the device, once you have selected "Repair this device" another menu will become available with several options including a graphical and text-based interface - both containing the exact same options and abilities which are covered below:

Please note that the graphical interface is currently under development and is not available yet.

Main Menu

The main menu provides limited options to quickly allow you to create or restore an image, or direct you to another screen for configuration or administrative functions. Aside from those three groupings of actions, there is a column on the right-hand side that shows you the contact information for your support company (if you have one) along with your local and public IP addresses, the Esesen software version, and what storage areas are presently mounted to access or save images.
Repair this device
Repair using a custom image
Create a custom image
Administration see below
Configuration see below
View Log

Administration Menu

blah

Configuration Menu

Partition containing the OS: this is...
Local storage device: this allows...

...

outline all the config options here mention to backup the config afterwards



Some Examples

(these need to have their own page)... outline some examples of working with Esesen: - a typical process (going through all the options available in the top of the admin menu) - recovering data from a failing drive - backing up and restoring configuration - Using a live CD with an LSB (using on the 'drive prep' option from the configuraiton menu) - restoring a device while keeping the user data intact



Network Designs

If your office consist of a room in your house, or actually is an office but only houses a handful of employees, then most of the time any servers in use are mainly for authentication and file sharing. While it is irrelevant whether the server is configured as a domain controller (DC) or a simple workgroup server, we do recommend having the clients of the network NOT be connected to a domain. Currently there are instances after a restoration where the client will need to be dropped and then re-joined to the domain controller in order to interact with the network once again. Not only will this step be prevented if the clients are never joined to a domain, but in the event that the server has to be replaced, the clients do not have to go through the process of migrating to the new server!



showing/hiding of the boot menu and how to get it to show if you hide it (e.g. grub2 using shift key)