Setting Up Your New Email

Background

Hopefully this is your first time setting up a new email but in some cases, this may be your second or third time.  But, sometimes something happens that we are not sure how to recover from.  In this case, my friend, Jeff, had a computer that crashed AND he had just changed his cell phone provider and got a new phone number so his recovery number was not updated with his email hosting provider, yahoo.com.  After his computer crashed, he was unable to access his account because he lost all of his passwords and browser cookies and whatnot that permitted him to access his account.  There was no way for him to recover so he had to move on and start fresh.

Purpose

The purpose of this article is to explain the general thought processes, considerations, and an overview of the tasks associated with the task of “getting a new email account”.

Let’s Begin

First, decide what it’s worth to you.  Everybody has a defacto price that fits the budget: FREE!  If it’s free, it’s for me!  In many instances that works great.  And, in many instances, it’s the best, or by far, the easiest option.  For instance, if you just want the free stuff from yahoo.com, like brian23@yahoo.com, it will be super easy to just go through the process and create a new email account and pay nothing for it.  However, if you want yahoo.com to be your host provider for your custom email address, brian@247roadies.com, it’s going to cost and it’s going to be complicated.  HOWEVER, you get what you pay for.  If you want support, it will be difficult.  If you want help when you’re in trouble, it will be difficult.  And in these cases, “difficult” means, unless you have lots of time and possibly a some money to burn, it will be almost impossible to get any resolution.  You, therefore, need to cross your “t”s and dot your “i”s – you need to stay on top of your account and know what you’re paying for (or not paying for) and how to manage things yourself – this includes how to RECOVER things yourself.

Did You Say FREE?

So, let’s assume FREE is still our goal here.  Most “global email hosting providers”, namely Google Mail, Yahoo Mail, Outlook Mail, etc., have a free tier that’s pretty easy to set up, with a few steps here and there for verification.  You need to decide which one you are interested in.  There are plenty of people out there who have reviewed different “global providers” so I won’t do that here.  For instance, here is a concise and short comparison with minimal details and here is one packed with information from top to bottom.

I suggest doing some research yourself and pick one.  Also keep in mind what your email says about you.  Do you want to be brianb23@gmail.com, brianb23@outlook.com, or brianb23@yahoo.com?  Maybe you don’t care.  Great!  Pick one.  Of course there are dozen other hosts who will probably host your email for free but keep in mind you’re always offering your personal data in return for $0 and these “top three” may be the most ‘moral’ of them all, if there is such a thing – they will use your data in many ways AND tell you how they are using them.  I’m generalizing, as I often do, but the bottom line is YOU are the product with almost anything you do nowadays and if you are not paying anything for a service, then you ought to know how YOU are being consumed by that company.

Anyway, pick one.  I use Fastmail.com which starts at $30/year.  I also use GMail.com (Paid) and Yahoo.com (Free), and Hotmail.com (which is now live.com) (Free).

Get your Details Straight Ahead of time

Chances are the one you want isn’t going to be available so be flexible and creative.  You may need to use some numbers (pick your favorite or pick the address of the restaurant your significant other and you had your favorite meal at) and an initial or two.  brian1107wb@gmail.com, for instance.  But DO NOT make it TOO complicated.  Try to keep it simple but make sure if it gets complex that it makes sense and it’s easy to tell somebody over the phone.  You do not want to have to say brianone1zero7tpbc@gmail.com to a teller or customer service representative when people are standing behind you in line or you are on the phone with spotty coverage.

Use your legal name, because you may have to verify with an I.D., and a number that isn’t going to change often, better yet, EVER.  If it needs to be your nephew’s cell number then so be it – use their number if you have any doubts of being able to keep your own number for the next 20 years.  Decide these things ahead of time.  In fact, if your nephew’s address is more stable than your address, then you may also need to use their address as your “home address”.

Last but not least, pick a strong password.  If you can, you’ll want to also set up two-factor authentication, or 2FA.  Also called multi-factor auth, or MFA.  If you set up 2FA or MFA, you will typically need either a phone that receives text messages or a phone or tablet that you can load an authentication app onto which generates a code.

Sign Up

Once you have picked one, sign up.  Go through their signup procedure(s) and get yourself your new email address.

What’s Next?

Well, that’s pretty much it.  Once you decide who your new host is, you can open a web browser (Firefox, Microsoft Edge, Safari, Google Chrome), go to their webmail interface on any computer (https://gmail.com or https://outlook.com or https://fastmail.com or https://yahoo.com) and log in using your email address and your password.  You can check your email this way from any device – phone, tablet, desktop computer, laptop, etc.  This is a built-in feature and makes accessing your email easy.

The other option is to configure an email client to manage your email on your personal machine.  This is not an unusual thing to do and many providers make it super easy to do through downloadable configuration files or by using specific DNS records and server responses to your client.[1][2]  If you chose wisely, your host will make this step easy for you.  As before, this post isn’t about configuring your mail client so I won’t cover that here.  There are several resources available to walk you through that part so I’ll leave it up to you to seek those resources out.  Each mail host may have their own specific set of instructions.

[1]https://serverfault.com/questions/172326/how-to-configure-email-autoconfiguration-for-a-domain
[2]https://www.rfc-editor.org/rfc/rfc6186

Need More Help?

Send me an email or leave a comment (when comments are enabled) and let me know what other information would help me to help you!

Apache Tips & Tricks

Virtual Hosts

Full walk-through is available here.  These notes are what my brain needs to trigger off of.

In /etc/apache2/apache2.conf

-IncludeOptional sites-enabled/*.conf
+IncludeOptional sites-available/*.conf

Create Your Virtual Hosts in /etc/apache2/sites-available/

root@wildweb:~# cat /etc/apache2/sites-available/data.pjakey.local.conf 
<VirtualHost *:80>
Alias /old-data "/var/www/html/"

# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName data.pjakey.local
ServerAlias data

ServerAdmin me@pjakey.com
DocumentRoot /data

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf

<Directory "/data">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
</VirtualHost>

Grep Basics – But, Are You Sure You Want to Use Grep?

Keep in mind: many things you want to do in grep you can do in awk.  Or, maybe there is just a better way.  I learned grep early on and have been forcing it to do things it wasn’t really designed to do, so here I will actually be listing solutions using other tools – tools that may be better designed for the task at hand.

Display Line Number of a Match

awk:

awk '/textstring/ {print FNR}' textfile

sed:

sed -n '/pattern/=' filename

Working With Files in Shell

Inserting Text Before a Certain Line

(taken from SO)

$ cat animals
dog
cat
dolphin
cat

$ sed "/cat/ { N; s/cat\n/giraffe\n&/ }" animals
dog
giraffe
cat
dolphin
cat

sed explained:

  1. match a line with /cat/
  2. continue on next line (N)
  3. substitute matched pattern with the insertion and the matched string where & represents the matched string

Ruby

Strings

There is no substring method in Ruby.  We must rely on ranges and expressions.

Example:
# Index 0 = c
# Index 1 = r
# Index 2 = u
# Index 3 = s
# Index 4 = t

value = "crust"

# Get substring at indexes 0 through 3.
sub1 = value[0..3]

# Get substring at indexes 3 through 4.
sub2 = value[2..3]

# Get substring past index three through end of string.
sub3 = value[3..-1]

puts sub1
puts sub2
puts sub3

# Output

crus
us
st

Kickstart


References

Pre-Installation Script
The important bits:
  1. The pre-install script is not run in the change root environment.
  2. You can access the network in the %pre section; however, name service has not been configured at this point, so only IP addresses work.
Post-Installation Script

The important bits:

  1. If you configured the network with static IP information, including a nameserver, you can access the network and resolve IP addresses in the %post section. If you configured the network for DHCP, the /etc/resolv.conf file has not been completed when the installation executes the %post section. You can access the network, but you can not resolve IP addresses. Thus, if you are using DHCP, you must specify IP addresses in the %post section
  2. The post-install script is run in a chroot environment; therefore, performing tasks such as copying scripts or RPMs from the installation media do not work.

Clonezilla Use Cases

01 – PXE boot PXELinux into Clonezilla live mode

PXE server ---> PXELinux ---> pxelinux.0

The kernel boot parameters control the behavior of the Clonezilla operating system that is being told to boot.

This is the most helpful and concise description of what our goal is, taken from clonezilla.org’s boot parameter doc.

…..when Clonezilla live boots, the file assigned by ocs_preload will be downloaded and extracted to /opt. Its mode will be set automatically, too. i.e. set as mode 755 and Unix format script.

 

Besides, if /opt/{overwrite-all-boot-param,overwrite-part-boot-param} exists (Downloaded from the file assigned by ocs_preload), it can be used to overwrite the boot parameters. File overwrite-all-boot-param is to overwrite the whole /proc/cmdline, while overwrite-part-boot-param only overwrites part of the variables in /proc/cmdline. Especially those “ocs_*” parameters. This is useful when you want to customize the boot parameters while you do not want to or can not modify the boot parameter file (isolinux.cfg, for example).

For example, the contents of “overwrite-all-boot-param” can be like: boot=live union=overlay username=user config components quiet noswap edd=on nomodeset nodmraid locales=en_US.UTF-8 keyboard-layouts=en ocs_live_run="ocs-sr -x -um beginner --batch -p reboot -scs -scr -sfsck -senc" ocs_live_extra_param="" ocs_live_batch=no vga=788 ip= net.ifnames=0 nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.enable_fbdev=1

 

The content of “overwrite-part-boot-param” can be like: locales=ja_JP.UTF-8 keyboard-layouts=fr ocs_live_run="ocs-sr -x -scr -scs" ocs_live_batch="no"

 

//NOTE//

  • Remember to set the network configuration either by the option “ocs_prerun” to run “dhclient” or the option “ip” if your files are on the network repository.
  • You can also use “ocs_prerun” to use your own command to fetch your files and put in Clonezilla live environment if you like, and that’s more flexible if you want to assign more parameters for your own command.
Example Configuration
DEFAULT linux
LABEL linux
KERNEL /iso/clonezilla/vmlinuz

 APPEND initrd=/iso/clonezilla/initrd.img boot=live username=user \
union=overlay config components quiet noswap edd=on nomodeset nodmraid \
locales=en_US.UTF-8 keyboard-layouts=NONE nicif="00:00:00:fd:55:14" \
ip=eth0:172.16.31.16:255.255.255.0:172.16.31.1:172.16.31.13, \
eth0:172.16.31.16:255.255.255.0:172.16.31.1:172.16.31.13:: \
ocs_live_netdev="eth0" \
ocs_repository="nfs://files.pjnet.local/data/disk-images/raw/" \
ocs_preload="http://files.pjnet.local/data/pxe-images/clonezilla/restore.sh" \
ocs_live_run="ocs-sr --batch -g auto -e1 auto -e2 -r -j2 -k1 -icds -p true restoredisk ubuntu18_4 sda" \
ocs_postrun="wget -q -O /dev/null --no-check-certificate http://iftt.pjnet.local/built && sudo reboot" \
ocs_live_batch=yes net.ifnames=0 nosplash nopromp fetch=tftp://172.16.31.211/iso/clonezilla/filesystem.squashfs

IPAPPEND 2

ocs_preload – To fetch tarball/zip/sh files from http(s), ftp, tftp, and local URL then exdtract to /opt/ in the Clonezilla live environment, use ocs_preload

ocs_live_run – For saving or restoring an image or cloning disk/partition. It is the main program to be run in Clonezilla live.

The programs that are available to us at run-time are:

ocs-btsrv ocs-chkimg ocs-chnthn ocs-clean-part-fs ocs-cnvt-usb-zip-to-dsk ocs-cvt-dev
ocs-cvtimg-comp ocs-decrypt-img ocs-encrypt-img ocs-expand-gpt-pt ocs-expand-mbr-pt
ocs-gen-bt-slices ocs-gen-grub2-efi-bldr ocs-get-part-info ocs-img-2-vdk ocs-install-grub
ocs-iso ocs-iso-2-onie ocs-label-dev ocs-lang-kbd-conf ocs-langkbdconf-bterm ocs-live
ocs-live-bind-mount ocs-live-boot-menu ocs-live-bug-report ocs-live-dev ocs-live-feed-img
ocs-live-final-action ocs-live-general ocs-live-get-img ocs-live-netcfg ocs-live-nicbonding
ocs-live-preload ocs-live-repository ocs-live-restore ocs-live-run-menu ocs-live-save
ocs-lvm2-start ocs-lvm2-stop ocs-makeboot ocs-match-checksum ocs-onthefly ocs-prep-home
ocs-put-signed-grub2-efi-bldr ocs-related-srv ocs-resize-part ocs-restore-ebr ocs-restore-mbr
ocs-restore-mdisks ocs-rm-win-swap-hib ocs-run-boot-param ocs-sr ocs-srv-live ocs-tune-conf-for-s3-swift
ocs-tune-conf-for-webdav ocs-tux-postprocess ocs-update-initrd ocs-update-syslinux ocsmgrd

In our case, we want to save or restore an image, so we’ll want to use ocs-sr (“sr” means “save or restore”).  I can’t find the help text for ocs-sr online so I’ll post the entire thing here.  The only way I know to get it is to boot into Clonezilla and grab it from there.

Usage:
To save or restore image
ocs-sr [OPTION] {savedisk|saveparts|restoredisk|restoreparts} IMAGE_NAME DEVICE

Options for saving:
-noabo, --not-only-access-by-owner Make the image of partition can be accessed by others, not only by owner. By default the image of partition will be changed as 600. With this option, it will be 644.
-senc, --skip-enc-ocs-img Skip encrypting the image with passphrase.
-enc, --enc-ocs-img To encrypt the image with passphrase.
-sfsck, --skip-fsck-src-part Skip running fsck on the source file system before saving it.
-fsck, -fsck-src-part, --fsck-src-part Run fsck interactively on the source file system before saving it.
-fsck-y, -fsck-src-part-y, --fsck-src-part-y Run fsck automatically on the source file system before saving it. This option will always attempt to fix any detected filesystem corruption automatically. //NOTE// Use this option in caution.
-gm, --gen-md5sum Generate the MD5 checksum for the image. Later you can use -cm|--check-md5sum option to check the image when restoring the image. Note! It might take a lot of time to generate if the image size is large.
-gs, --gen-sha1sum Generate the SHA1 checksum for the image. Later you can use -cs|--check-sha1sum option to check the image when restoring the image. Note! It might take a lot of time to generate if the image size is large.
-gmf, --gen-chksum-for-files-in-dev Generate the checksum for files in the source device. Later you can use -cmf|--chk-chksum-for-files-in-dev to check the files in the destination device after they are restored. Note! It might take a lot of time to inspect the checksum if there are many files in the destination device.
-i, --image-size SIZE Set the size in MB to split the partition image file into multiple volumes files. For the FAT32 image repository, the SIZE should not be larger than 4096.
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool.
-ntfs-ok, --ntfs-ok Assume the NTFS integrity is OK, do NOT check again (for ntfsclone only)
-rm-win-swap-hib, --rm-win-swap-hib Try to remove the MS windows swap file in the source partition.
-q, --use-ntfsclone If the partition to be saved is NTFS, use program ntfsclone instead of partimage (i.e. Priority: ntfsclone > partimage > dd)
-q1, --force-to-use-dd Force to use dd to save partition(s) (inefficient method, very slow, but works for all the file system).
-q2, --use-partclone Use partclone to save partition(s) (i.e. partclone > partimage > dd).
-rescue, --rescue Turn on rescue mode, i.e. try to skip bad sectors.
-sc, -scs, --skip-check-restorable, --skip-check-restorable-s By default Clonezilla will check the image if restorable after it is created. This option allows you to skip that.
-z0, --no-compress Don't compress when saving: very fast but very big image file (NOT compatible with multicast restoring!!!)
-z1, --gzip-compress Compress using gzip when saving: fast and small image file (default)
-z1p, --smp-gzip-compress Compress using parallel gzip program (pigz) when saving: fast and small image file, good for multi-core or multi-CPU machine
-z2, --bz2-compress Compress using bzip2 when saving: slow but smallest image file
-z2p, --smp-bzip2-compress Compress using parallel bzip2 program (lbzip2) when saving: faster and smallest image file, good for multi-core or multi-CPU machine
-z3, --lzo-compress Compress using lzop when saving: similar to the size by gzip, but faster than gzip.
-z4, --lzma-compress Compress using lzma when saving: slow but smallest image file, faster decompression than bzip2.
-z5, --xz-compress Compress using xz when saving: slow but smallest image file, faster decompression than bzip2.
-z5p, --smp-xz-compress Compress using parallel xz when saving: slow but smallest image file, faster decompression than bzip2.
-z6, --lzip-compress Compress using lzip when saving: slow but smallest image file, faster decompression than bzip2.
-z6p, --smp-lzip-compress Compress using parallel lzip when saving: slow but smallest image file, faster decompression than bzip2.
-z7, --lrzip-compress Compress using lrzip when saving.
-z8, --lz4-compress Compress using lz4 when saving.
-z8p, --lz4mt-compress Compress using lz4mt when saving.
-z9, --zstd-compress Compress using zstd when saving.
-z9p, --pzstd-compress Compress using pzstd when saving.
-i, --image-size SIZE Set the split image file volume size SIZE (MB). When ocs-sr is run with -x, the default SIZE is set as 4096, if without -x, we will not split it.
-pe, --passwd-ecryptfs PASSWD Set the password to encrypt the image. Use with option "-enc" when saving, or restoring when the image is encrypted. //NOTE// This is not a safe way to use it because the password is shown in the command line or system processes.
-pfe, --passwd-file-ecryptfs FILE Set the password to encrypt the image in the FILE. Use with option -enc, or restoring when the image is encrypted. The file contains the password to encrypt the image. Its format is like: passphrase_passwd=YOURPASSWORD.
Some words are reserved for IMAGE_NAME, "ask_user" is used to let user to input a name when saving an image. "autoname" is used to automatically generate the image name based on network card MAC address and time. "autohostname" is used to automatically generate the image name based on hostname. "autoproductname" is used to automatically generate the image name based on hardware product model gotten from dmidecode.
A word is reserved for DEVICE, "ask_user" could be used to let user to select the source device when saving an image.

Options for restoring:
-f, --from-part-in-img PARTITION Restore the partition from image. This is especially for "restoreparts" to restore the image of partition (only works for one) to different partition, e.g. sda1 of image to sdb6.
-g, --grub-install GRUB_PARTITION Install grub in the MBR of the disk containing partition GRUB_PARTITION with root grub directory in the same GRUB_PARTITION when restoration finishes, GRUB_PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the grub root partition automatically). If "auto" is assigned, it will work if grub partition and root partition are not in the same partition.
-r, --resize-partition Resize the partition when restoration finishes, this will resize the file system size to fit the partition size. It is normally used when when a small partition image is restored to a larger partition.
-k, --no-fdisk, --no-create-partition Do NOT create partition in target harddisk. If this option is set, you must make sure there is an existing partition table in the current restored harddisk. Default is to create the partition table.
-icrc, --icrc Skip Partclone CRC checking.
-irhr, --irhr Skip removing the Linux udev hardware records on the restored GNU/Linux.
-irvd, --irvd Skip removing the NTFS volume dirty flag after the file system is restored.
-ius, --ius Skip updating syslinux-related files on the restored GNU/Linux.
-icds, --ignore-chk-dsk-size-pt Skip checking destination disk size before creating the partition table on it. By default it will be checked and if the size is smaller than the source disk, quit.
-iefi, --ignore-update-efi-nvram Skip updating boot entries in EFI NVRAM after restoring.
-k1, Create partition table in the target disk proportionally.
-k2, Enter command line prompt to create partition table manually before restoring image.
-scr, --skip-check-restorable-r By default Clonezilla will check the image if restorable before restoring. This option allows you to skip that.
-t, --no-restore-mbr Do NOT restore the MBR (Mater Boot Record) when restoring image. If this option is set, you must make sure there is an existing MBR in the current restored harddisk. Default is Yes
-u, --select-img-in-client Input the image name in clients
-e, --load-geometry Force to use the saved CHS (cylinders, heads, sectors) when using sfdisk
-e1, --change-geometry NTFS-BOOT-PARTITION Force to change the CHS (cylinders, heads, sectors) value of NTFS boot partition after image is restored. NTFS-BOOT-PARTITION can be one of "/dev/sda1", "/dev/sda2"... or "auto" ("auto" will let clonezilla detect the NTFS boot partition automatically)
-e2, --load-geometry-from-edd Force to use the CHS (cylinders, heads, sectors) from EDD (Enhanced Disk Device) when creating partition table by sfdisk
-j, --create-part-by-sfdisk Use sfdisk to create partition table instead of using dd to dump the partition table from saved image (This is default)
-j0, --create-part-by-dd Use dd to dump the partition table from saved image instead of sfdisk. ///Note/// This does NOT work when logical drives exist.
-j1, --dump-mbr-in-the-end Use dd to dump the MBR (total 512 bytes, i.e. 446 bytes (executable code area) + 64 bytes (table of primary partitions) + 2 bytes (MBR signature; # 0xAA55) = 512 bytes) after disk image was restored. This is an insurance for some hard drive has different numbers of cylinder, head and sector between image was saved and restored.
-j2, --clone-hidden-data Use dd to clone the image of the data between MBR (1st sector, i.e. 512 bytes) and 1st partition, which might be useful for some recovery tool.
-hn0 PREFIX Change the hostname of MS Windows based on the combination of hostname prefix and IP address, i.e. PREFIX-IP
-hn1 PREFIX Change the hostname of MS Windows based on the combination of hostname prefix and NIC MAC address, i.e. PREFIX-MAC
--max-time-to-wait TIME When not enough clients have connected (but at least one), start anyways when TIME seconds since first client connection have pased. This option is used with --clients-to-wait
-cm, --check-md5sum Check the MD5 checksum for the image. To use this option, you must enable -gm|--gen-md5sum option when the image is saved. Note! It might take a lot of time to check if the image size is large.
-cs, --check-sha1sum Check the SHA1 checksum for the image. To use this option, you must enable -gs|--gen-sha1sum option when the image is saved. Note! It might take a lot of time to check if the image size is large.
-cmf, --chk-chksum-for-files-in-dev Check the checksum for the files in the device. To use this option, you must enable -gmf|--gen-chksum-for-files-in-dev when the image is saved. Note! (1) The file system must be supported by Linux kernel so that it can be mounted as read-only to check the files. (2) It might take a lot of time to check if there are many files in the source device.
-srel, --save-restore-error-log Save the error log file in the image dir. By default the log file won't be saved when error occurs.
--mcast-port NO Assign the udp port number for multicast restore. This is used by clonezilla server. Normally it's not necessary to manually assign this option.
Some words are reserved for IMAGE_NAME, "ask_user" is used to let user to input a name when saving an image. "autoproductname" is used to automatically get the image name based on hardware product model from dmidecode.
A word is reserved for DEVICE, "ask_user" could be used to let user to select the source device when saving an image.

General options:
-l, --language INDEX Set the language to be shown by index number:
[0|en_US.UTF-8]: English,
[2|zh_TW.UTF-8]: Traditional Chinese (UTF-8, Unicode) - Taiwan
[a|ask]: Prompt to ask the language index
-b, -batch, --batch (DANGEROUS!) Run program in batch mode, i.e. without any prompt or wait for pressing enter key. //NOTE// You have to use '-batch' instead of '-b' when you want to use it in the boot parameters. Otherwise the program init on system will honor '-b', too.
-c, --confirm Wait for confirmation before saving or restoring
-d, --debug-mode Enter command mode to debug before saving/restoring
--debug=LEVEL Output the partimage debug log in directory /var/log/ with debug LEVEL (0,1,2... default=0)
-m, --module MODULE Force to load kernel module MODULE, this is useful when some SCSI device is not detected. NOTE! Use only one module, more than one may cause parsing problem.
-o0, --run-prerun-dir Run the script in the directory /usr/share/drbl/postrun/ocs/ before clone is started. The command will be run before MBR is created or saved.
-o1, -o, --run-postrun-dir Run the script in the directory /usr/share/drbl/postrun/ocs/ when clone is finished. The command will be run before that assigned in -p or --postaction.
-w, --wait-time TIME Wait for TIME secs before saving/restoring
-nogui, --nogui Do not show GUI (TUI) of Partclone or Partimage, use text only
-a, --no-force-dma-on Do not force to turn on HD DMA
-mp, --mount-point MOUNT_POINT Use NFS to mount MOUNT_POINT as directory ocsroot (ocsroot is assigned in drbl.conf)
-or, --ocsroot DIR Specify DIR (absolute path) as directory ocsroot (i.e. overwrite the ocsroot assigned in drbl.conf)
-p, --postaction [choose|poweroff|reboot|command|CMD] When save/restoration finishes, choose action in the client, poweroff, reboot (default), in command prompt or run CMD
-ns, --ntfs-progress-in-image-dir Save the ntfsclone progress tmp file in the image dir so that if cloning is in DRBL client, the progress can be check in the server (Default in to be put in local /tmp/, which is local tmpfs).
-um, --user-mode [beginner|expert] Specify the mode to use. If not specified, default mode is for a beginner.
-v, --verbose Prints verbose information
-d0, --dialog Use dialog
-d1, --Xdialog Use Xdialog
-d2, --whiptail Use whiptail
-d3, --gdialog Use gdialog
-d4, --kdialog Use kdialog
-x, --interactive Interactive mode to save or restore.
-os, --ocs-server SRV Assign the OCS server as SRV.

Example:
To save or restore image in client (Only that DRBL client will join, and its local partitions is NOT mounted). NOTE!!! You should run the command in DRBL client or you have to make sure the target device is NOT busy!.
To save all the data in local first IDE harddrive 'hda' as image 'IMAGE1', use ntfsclone instead of partimage, and lzop compression (NOTE!!! You should run the command in DRBL client or make sure hda is NOT busy/mounted!):
ocs-sr --use-ntfsclone -z3 savedisk IMAGE1 hda

To save the data in first and second partitions in local first IDE harddrive 'hda' as image 'IMAGE2', use ntfsclone instead of partimage, and lzop compression (NOTE!!! You should run the command in DRBL client, or make sure hda is NOT busy/mounted!):
ocs-sr --use-ntfsclone -z3 saveparts IMAGE2 "hda1 hda2"

To restore image IMAGE1 to local hda. grub-install will be run after cloning (image IMAGE1 is already in DRBL server. NOTE!!! You should run the command in DRBL client or make sure hda is NOT busy/mounted!):
ocs-sr -g auto restoredisk IMAGE1 hda

To restore image first and second partitions from IMAGE2 to local hda1 and hda2. grub-install will be run after cloning (image IMAGE2 is already in DRBL server. NOTE!!! You should run the command in DRBL client or make sure hda is NOT busy/mounted!):
ocs-sr -g auto restoreparts IMAGE2 "hda1 hda2"

To save disk(s)/partitition(s) as an image or restore an image to disk(s)/partitition(s) interactively, use:
ocs-sr -x

ocs_postrun, ocs_postrun1, ocs_postrun2, etc… – Intended for running a command after an operation of saving/restoring an image or cloning disk/partition has been completed.


Mount Disk Images (Partitions)

sudo zcat sda2.ext4-ptcl-img.gz.aa | partclone.restore --restore_raw_file -C -s - -o pjakey.img
sudo mkdir /mnt/partclone
sudo mount -o loop pjakey.img /mnt/partclone -t ext4 -o r

Computer Architecture

I deal with performant systems every day, on some level.  Sometimes it’s just BIOS or kernel options, other times it’s queuing or threads and processes.  Most of the time, I’m learning something new.  This is a page for those learning experiences.

Authority Mask Register (AMR)

A CVE came across my desk having to do with AMR on PowerPC.  This was new to me so I did a little digging.  It’s not something I’ve ever heard of before.

A component of storage protection.  The operation of the storage protection mechanism depends on the contents of one or more of the following:

  • MSR bits HV, IR, DR, PR
  • the key bits and N bit in the associated SLB entry
  • the page protection bits, key bits, N bit, and Gattribute in the associated PTE
  • the AMR, IAMR, AMOR, and UAMOR

The Virtual Page Class Key Protection mechanism provides the means to assign virtual pages to one of 32 classes, and to modify data access permissions for each class by modifying the AMR and to modify instruction access permissions for each class by modifying the Instruction AMR (IAMR).[1]


References

[1] https://wiki.raptorcs.com/w/images/c/cb/PowerISA_public.v3.0B.pdf

Yellowdog Updater, Modified (YUM)

Basic Commands

List packages with pending updates
yum list updates
Show all versions of a package installed on the system
yum --showduplicates list dpdk | expand
Install a specific package
yum install dpdk 19.02-2

If the version you wish to install is older, you may need to…

Remove an installed package
yum remove dpdk
To lock packages
yum install yum-versionlock
yum versionlock dpdk

Stock Repos

/etc/yum.repos.d/

Method 1: Boot to live CD and copy repos from there to your system

Method 2: Create a “base” set of repo files by hand.

Create the following file:

vi /etc/yum.repos.d/Centos-Base.repo

Put the following info inside of the file:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=
$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1

Save your changes, run yum clean all and yum makecache

Method 3: Using rpm, manually reinstall centos-release-rpm

The first step is to see if the centos-release package is installed, by typing rpm -q centos-release

[root@smartproxy-iad ~]# rpm -q centos-release
centos-release-7-6.1810.2.el7.centos.x86_64

If it’s not installed, then the --replacepkgs --replacefiles part of the command can be omitted.

yum remove centos-release
# Option A
rpm -ivh --replacepkgs --replacefiles centos-release*.rpm
# Option B
rpm -Uvh centos-release.*.rpm