Added info and man page for xorriso-dd-target
This commit is contained in:
parent
a6ab055153
commit
23bce9c669
491
xorriso-dd-target/xorriso-dd-target.1
Normal file
491
xorriso-dd-target/xorriso-dd-target.1
Normal file
@ -0,0 +1,491 @@
|
||||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\"
|
||||
.\" IMPORTANT NOTE:
|
||||
.\"
|
||||
.\" The original of this file is kept in xorriso/xorriso-tcltk.texi
|
||||
.\" This here was generated by program xorriso/make_xorriso_1
|
||||
.\"
|
||||
.\"
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH XORRISO-DD-TARGET 1 "Version 1.5.3, Dec 2, 2019"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.nh
|
||||
.SH NAME
|
||||
xorriso\-dd\-target \- Device evaluator and disk image copier for GNU/Linux
|
||||
.SH SYNOPSIS
|
||||
.B xorriso-dd-target
|
||||
[ options ] [ device_names ]
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
\fBxorriso\-dd\-target\fR
|
||||
evaluates block devices of the Linux kernel whether they are suitable targets
|
||||
for a disk image file and optionally copies the image file to one of them.
|
||||
.br
|
||||
It is specialized on the device names of the Linux kernel and uses the
|
||||
capabilities of util\-linux program lsblk. Therefore it refuses to run on
|
||||
non\-Linux kernels.
|
||||
.br
|
||||
.PP
|
||||
The main purpose of xorriso\-dd\-target is to inspect the device files
|
||||
of disk\-like storage media and to judge whether they look like removable
|
||||
devices with disposable content.
|
||||
.br
|
||||
If a single plausible candidate is detected, then the program is willing to
|
||||
copy a disk image file onto it. This will overwrite or make inaccessible the
|
||||
previous partition table and all previous data content of the target device.
|
||||
.br
|
||||
\fBSuperuser power\fR is needed for filesystem type identification, for
|
||||
possible unmounting, and for possible image writing. Option \fB\-with_sudo\fR
|
||||
offers a way to gain this power only for those tasks and to run the program
|
||||
elsewise with a normal user's power.
|
||||
.br
|
||||
If a particular disk image file is intended as eventual copy source, then
|
||||
its path should be given by option \-image_file, so that its size can be used
|
||||
as decision criterion.
|
||||
.PP
|
||||
Following are use case descriptions with examples:
|
||||
.br
|
||||
- List plain device names
|
||||
.br
|
||||
- List all devices with reasoning
|
||||
.br
|
||||
- Evaluate particular given devices
|
||||
.br
|
||||
- Detect intended device by plugging
|
||||
.br
|
||||
- Write image to an advised device
|
||||
.br
|
||||
- Show commands for writing to a not advised device
|
||||
.br
|
||||
.SS
|
||||
\fBList plain device names:\fR
|
||||
.br
|
||||
The most simple and most boring use case is a program run without device names
|
||||
and without options \-list_all, \-plug_test, \-DO_WRITE, \-dummy_force.
|
||||
It prints on standard output (stdout) only the names of advisable devices
|
||||
without "/dev/" prefix. One name per line and without any reasoning text.
|
||||
.br
|
||||
Example:
|
||||
.br
|
||||
$ xorriso\-dd\-target \-with_sudo
|
||||
.br
|
||||
Testing sudo to possibly get password prompting done now:
|
||||
.br
|
||||
[sudo] password for thomas:
|
||||
.br
|
||||
sudo /bin/lsblk seems ok.
|
||||
|
||||
sde
|
||||
.SS
|
||||
\fBList all devices with reasoning:\fR
|
||||
.br
|
||||
For the more curious user, there is option \fB\-list_all\fR which prints
|
||||
the evaluation of each disk\-like device that is listed by program lsblk.
|
||||
Optical drives and floppy disks are excluded, though.
|
||||
.br
|
||||
Each device is shown by one line of the form
|
||||
.br
|
||||
name : advice : reasoning : info
|
||||
.br
|
||||
\fBname\fR is the device name without "/dev/" prefix.
|
||||
.br
|
||||
\fBadvice\fR is either "YES" or "NO". "YES" indicates that the device
|
||||
appears to be pluggable disk\-like, not used as system disk or sincere data
|
||||
storage, and \- if tested \- of sufficient or plausible size.
|
||||
.br
|
||||
\fBreasoning\fR is a blank separated list of words with either suffix '+'
|
||||
for an inviting device property or '\-' for a prohibitive property. Normally
|
||||
a single '\-' reason disqualifies the device from being advisable. Only if
|
||||
option \-look_for_iso is given, a reason "has_...\-" can be overridden by
|
||||
the presence of an ISO 9660 filesystem on the device.
|
||||
.br
|
||||
\fBinfo\fR is composed from VENDOR and MODEL as told by lsblk.
|
||||
.br
|
||||
Example:
|
||||
.br
|
||||
$ xorriso\-dd\-target \-with_sudo \-list_all
|
||||
.br
|
||||
...
|
||||
.br
|
||||
sda : NO : not_usb\- has_vfat+ has_ext4\- : ATA Samsung SSD 850
|
||||
.br
|
||||
sdb : NO : not_usb\- has_swap\- has_ext4\- : ATA WDC WD20EFRX\-68A
|
||||
.br
|
||||
sdc : YES : usb+ has_iso9660+ has_vfat+ : Intenso Ultra Line
|
||||
.br
|
||||
sdd : NO : usb+ has_iso9660+ has_vfat+ has_ext2\- : SanDisk Cruzer
|
||||
.SS
|
||||
\fBEvaluate particular given devices:\fR
|
||||
.br
|
||||
If \fBdevice names\fR are given instead of option \-list_all, then only
|
||||
these devices are inspected. Their result gets listed without the ": info"
|
||||
part, unless option \fB\-with_vendor_model\fR is given.
|
||||
.br
|
||||
Device names must not begin by '\-' and must be single words. They must
|
||||
not contain '/'. E.g. 'sdc' is valid, '/dev/sdc' is not valid.
|
||||
.br
|
||||
If one of the given device names gets not advised, the exit value is 1.
|
||||
.br
|
||||
It makes few sense to give device names which are not listed by \-list_all.
|
||||
.br
|
||||
Examples:
|
||||
.br
|
||||
$ xorriso\-dd\-target \-with_sudo sdc
|
||||
.br
|
||||
...
|
||||
.br
|
||||
sdc : YES : usb+ has_iso9660+ has_vfat+
|
||||
.br
|
||||
$ xorriso\-dd\-target sdc
|
||||
.br
|
||||
sdc : NO : usb+ no_fs_while_not_su\-
|
||||
.SS
|
||||
\fBDetect intended device by plugging:\fR
|
||||
.br
|
||||
Option \fB\-plug_test\fR triggers an interactive method to unambiguously
|
||||
determine the intended target device candidate. It consists of 2 or 3 steps.
|
||||
.br
|
||||
\fBStep 1\fR is to have the intended storage device unplugged and
|
||||
to confirm this by pressing the Enter key at the program's prompt. The program
|
||||
will then assess the list of not wanted devices.
|
||||
.br
|
||||
\fBStep 2\fR is to plug in the intended storage device and to confirm this
|
||||
by pressing the Enter key a second time. The program will wait up to 10 seconds
|
||||
for a disk\-like storage device which is not in the list of not wanted devices.
|
||||
The user may wait with key pressing until the device blinking looks like it
|
||||
is ready.
|
||||
.br
|
||||
Only if a single new device is found, the program will go on as if a single
|
||||
device name was given. Option \-list_all and any device names given as arguments
|
||||
will be ignored.
|
||||
.br
|
||||
\fBStep 3\fR happens only if options \-DO_WRITE or \-dummy_force are given.
|
||||
The program asks for a final press of the Enter key before real or simulated
|
||||
writing begins.
|
||||
.br
|
||||
Example:
|
||||
.br
|
||||
$ xorriso\-dd\-target \-with_sudo \-plug_test
|
||||
.br
|
||||
...
|
||||
.br
|
||||
Caused by option \-plug_test: Attempt to find the desired device
|
||||
by watching it appear after being plugged in.
|
||||
.br
|
||||
Step 1:
|
||||
.br
|
||||
Please make sure that the desired target device is plugged _out_ now.
|
||||
Press the Enter key when ready.
|
||||
.br
|
||||
|
||||
.br
|
||||
Found and noted as _not_ desired: sda sdb sdc
|
||||
.br
|
||||
Step 2:
|
||||
.br
|
||||
Please plug in the desired target device and then press the Enter key.
|
||||
.br
|
||||
|
||||
.br
|
||||
Waiting up to 10 seconds for a new device to be listed ...
|
||||
.br
|
||||
Found and noted as desired device: sdd
|
||||
.br
|
||||
|
||||
.br
|
||||
sdd : NO : usb+ has_iso9660+ has_vfat+ has_ext2\- : SanDisk Cruzer
|
||||
.SS
|
||||
\fBWrite image to an advised device:\fR
|
||||
.br
|
||||
Only if option \fB\-DO_WRITE\fR is given and \-list_all is not, and if exactly
|
||||
one advisable device is listed, it really gets overwritten by the file content
|
||||
of the given \-image_file. In this case the exit value is zero if writing
|
||||
succeeded, non\-zero else.
|
||||
.br
|
||||
Option \fB\-dummy\fR prevents this kind of real action and rather shows the
|
||||
planned umount and dd commands on stdout.
|
||||
.br
|
||||
Example:
|
||||
.br
|
||||
$ xorriso\-dd\-target \-with_sudo \-plug_test \-DO_WRITE \\
|
||||
.br
|
||||
> \-image_file debian\-live\-10.0.0\-amd64\-xfce.iso
|
||||
.br
|
||||
... sudo messages and above plug test steps 1 and 2 ...
|
||||
.br
|
||||
|
||||
.br
|
||||
sde : YES : usb+ has_iso9660+ has_vfat+
|
||||
.br
|
||||
Step 3:
|
||||
.br
|
||||
Last chance to abort. Press Enter to start REAL WRITING.
|
||||
.br
|
||||
|
||||
.br
|
||||
Looking for mount points of sde:
|
||||
.br
|
||||
/dev/sde1 on /mnt/iso type iso9660 (ro,relatime)
|
||||
.br
|
||||
/dev/sde2 on /mnt/fat type vfat (rw,...,errors=remount\-ro)
|
||||
.br
|
||||
Unmounted: /dev/sde1
|
||||
.br
|
||||
Unmounted: /dev/sde2
|
||||
.br
|
||||
Performing:
|
||||
.br
|
||||
sudo /bin/dd if='debian\-live\-10.0.0\-amd64\-xfce.iso' bs=1M of=/dev/sde ; sync
|
||||
.br
|
||||
... dd messages ...
|
||||
.SS
|
||||
\fBShow commands for writing to a not advised device:\fR
|
||||
.br
|
||||
There should be no way to convince xorriso\-dd\-target of writing to a target
|
||||
device which it does not deem advisable. Please report any set of arguments
|
||||
that can be misused for that.
|
||||
.br
|
||||
The outmost complicity to potentially unwise actions is offered by
|
||||
option \fB\-dummy_force\fR. If given together with a single device name or
|
||||
with option \-plug_test it will act like \-dummy \-DO_WRITE with this device,
|
||||
even if it looks not advisable. I.e. it will show the shell commands which the
|
||||
program does not dare to perform.
|
||||
.br
|
||||
Example:
|
||||
.br
|
||||
$ xorriso\-dd\-target \-with_sudo \-dummy_force sdd \\
|
||||
.br
|
||||
> \-image_file debian\-live\-10.0.0\-amd64\-xfce.iso
|
||||
.br
|
||||
...
|
||||
.br
|
||||
sdd : NO : usb+ has_iso9660+ has_vfat+ has_ext2\-
|
||||
.br
|
||||
|
||||
.br
|
||||
Overriding any advice because of \-dummy_force
|
||||
.br
|
||||
Looking for mount points of sdd:
|
||||
.br
|
||||
/dev/sdd1 on /mnt/iso type iso9660 (ro,relatime)
|
||||
.br
|
||||
/dev/sdd2 on /mnt/fat type vfat (rw,...,errors=remount\-ro)
|
||||
.br
|
||||
/dev/sdd3 on /mnt/ext type ext2 (rw,relatime)
|
||||
.br
|
||||
AGAINST THE ADVICE BY THIS PROGRAM, a daring user could do:
|
||||
.br
|
||||
sudo /bin/umount /dev/sdd1
|
||||
.br
|
||||
sudo /bin/umount /dev/sdd2
|
||||
.br
|
||||
sudo /bin/umount /dev/sdd3
|
||||
.br
|
||||
sudo /bin/dd if='debian\-live\-10.0.0\-amd64\-xfce.iso' bs=1M of=/dev/sdd ; sync
|
||||
.br
|
||||
BE SMART. BE CAUTIOUS. BEWARE.
|
||||
.SS
|
||||
\fBAlphabetical List of positive and negative reasons:\fR
|
||||
.br
|
||||
As stated with use case "List all devices", \fBreasons\fR are words with
|
||||
either suffix '+' for an inviting device property or '\-' for a prohibitive
|
||||
property.
|
||||
.br
|
||||
Normally a single '\-' reason disqualifies the device from being advisable.
|
||||
.br
|
||||
.PP
|
||||
\fBhas_XYZ\-\fR
|
||||
.br
|
||||
A filesystem of type XYZ is detected on base device or partition and is
|
||||
spoiling the impression of a device with disposable content.
|
||||
.br
|
||||
\fBhas_iso9660+\fR
|
||||
.br
|
||||
An ISO 9660 filesystem is detected.
|
||||
.br
|
||||
\fBhas_vfat+\fR
|
||||
.br
|
||||
A FAT (MS\-DOS\-like) filesystem is detected.
|
||||
.br
|
||||
\fBlook_for_iso++\fR
|
||||
.br
|
||||
Option \-look_for_iso is given and an ISO 9660 filesystem is detected.
|
||||
This reason overrides any "has_XYZ\-" reason.
|
||||
.br
|
||||
\fBlooks_like_cd_drive\-\fR
|
||||
.br
|
||||
A given device name looks like the name of an optical drive: sr[0\-9]*.
|
||||
Use program \fBxorrecord\fR for this kind of devices.
|
||||
.br
|
||||
\fBlooks_like_disk_partition\-\fR
|
||||
.br
|
||||
A given device name looks like the name of a partition. Expected are names
|
||||
of base devices, like "sde", not of their partitions, like "sde1".
|
||||
.br
|
||||
\fBlsblk_no_size\-\fR
|
||||
.br
|
||||
A size test is given by \-max_size, \-min_size, or \-image_file but the size of
|
||||
the device cannot be inquired by lsblk. This is supposed to happen only with
|
||||
given inappropriate device names.
|
||||
.br
|
||||
\fBmmcblk+\fR
|
||||
.br
|
||||
The device name looks like a directly connected memory card.
|
||||
.br
|
||||
\fBname_with_slash\-\fR
|
||||
.br
|
||||
A given device name contains '/' characters.
|
||||
.br
|
||||
\fBno_bus_info\-\fR
|
||||
.br
|
||||
The device is not a memory card and lsblk reports nothing about the way how
|
||||
it is connected to the computer.
|
||||
.br
|
||||
\fBno_fs_while_not_su\-\fR
|
||||
.br
|
||||
No filesystem is reported by lsblk and the program does not believe to have
|
||||
run it with superuser powers. There is the risk that lsblk silently failed
|
||||
to detect existing filesystems.
|
||||
.br
|
||||
\fBno_iso9660\-\fR
|
||||
.br
|
||||
Option \-look_for_iso is given but no ISO 9660 filesystem is detected.
|
||||
.br
|
||||
\fBnot_usb\-\fR
|
||||
.br
|
||||
The device is not a memory card and lsblk reports that it is connected by
|
||||
something other than USB.
|
||||
.br
|
||||
\fBsize_too_large\-\fR
|
||||
.br
|
||||
Option \-max_size is given with a size smaller than the size of the device.
|
||||
.br
|
||||
\fBsize_too_small\-\fR
|
||||
.br
|
||||
Option \-min_size or \-image_file is given with size or file size larger than
|
||||
the size of the device.
|
||||
.br
|
||||
\fBusb+\fR
|
||||
.br
|
||||
The device is reported by lsblk to be connected via USB.
|
||||
.br
|
||||
.SS
|
||||
.br
|
||||
.SH OPTIONS
|
||||
.br
|
||||
.PP
|
||||
.TP
|
||||
\fB\-plug_test\fR
|
||||
Find the target device by asking the user to press the Enter key when the
|
||||
desired target is _not_ plugged in, to then plug it in, and to press Enter
|
||||
again.
|
||||
.br
|
||||
This overrides device names and option \-list_all.
|
||||
The found device is then shown with advice, vendor, and model.
|
||||
.br
|
||||
Option \-DO_WRITE is obeyed if given.
|
||||
In this case a final Enter key is demanded before writing begins.
|
||||
.TP
|
||||
\fB\-list_all\fR
|
||||
Print list of all found devices with advice, vendor and model. One per line.
|
||||
Ignore any device names. Ignore \-DO_WRITE.
|
||||
.TP
|
||||
\fB\-with_vendor_model\fR
|
||||
Print vendor and model with each submitted device name.
|
||||
.TP
|
||||
\fB\-max_size\fR n[M|G|T]
|
||||
Set the upper byte size limit for advisable devices. Plain numbers get rounded
|
||||
down to full millions. As suffix are recognized: M = million, G = billion,
|
||||
T = trillion.
|
||||
.br
|
||||
Be generous to avoid problems with GB < GiB.
|
||||
.TP
|
||||
\fB\-min_size\fR n[M|G|T]
|
||||
Set the lower byte size limit for advisable devices. After processing like
|
||||
with \-max_size, one million gets added to the size limit.
|
||||
.TP
|
||||
\fB\-look_for_iso\fR
|
||||
Demand presence of an ISO 9660 filesystem. If so, then any further filesystem
|
||||
type is acceptable on that device.
|
||||
.br
|
||||
If this option is missing, only ISO 9660 and VFAT filesystems are accepted.
|
||||
.TP
|
||||
\fB\-with_sudo\fR
|
||||
Run 'lsblk \-o FSTYPE' by sudo. If no filesystems are detected on a device while
|
||||
the program has no superuser power, then the device is not advised. Option
|
||||
\-with_sudo avoids this refusal without the need to run the whole
|
||||
program as superuser.
|
||||
.br
|
||||
If \-DO_WRITE \-with_sudo is given, then the programs umount and dd will be run
|
||||
by sudo, too.
|
||||
.TP
|
||||
\fB\-image_file\fR PATH
|
||||
Set the path of the image file which shall be written to a device. Its size
|
||||
will be set as \-min_size.
|
||||
.TP
|
||||
\fB\-DO_WRITE\fR
|
||||
Write the given \-image_file to the one advisable device that is found. If more
|
||||
than one such device is found, then they get listed but no writing happens.
|
||||
.br
|
||||
In this case, to get a real write run, consider unplugging unneeded devices,
|
||||
or using option \-plug_test, or a re\-run with one of the advised device names
|
||||
as additional argument.
|
||||
.TP
|
||||
\fB\-dummy\fR
|
||||
Report the \-DO_WRITE actions but do not perform them.
|
||||
.TP
|
||||
\fB\-dummy_force\fR
|
||||
If a single device name is given, do a run of \-dummy \-DO_WRITE even against
|
||||
the advice of this program. This probably shows you ways to shoot your own
|
||||
foot.
|
||||
.TP
|
||||
\fB\-help\fR
|
||||
Print the help text to stdout and then end the program.
|
||||
.SH EXAMPLES
|
||||
Examples are given in the above description of use cases.
|
||||
.SH FILES
|
||||
For now, no files are defined for configuration.
|
||||
.SH SEE ALSO
|
||||
.BR lsblk(8),
|
||||
.BR umount(8),
|
||||
.BR dd(1),
|
||||
.BR xorrecord(1)
|
||||
.SH BUGS
|
||||
To report bugs, request help, or suggest enhancements for
|
||||
\fBxorriso\-dd\-target\fR,
|
||||
please send electronic mail to the public list <bug\-xorriso@gnu.org>.
|
||||
If more privacy is desired, mail to <scdbackup@gmx.net>.
|
||||
.br
|
||||
Please describe what you expect the program to do, the program arguments
|
||||
which you used, the messages of \fBxorrisodd\-target\fR, and the
|
||||
undesirable outcome of your program run.
|
||||
.br
|
||||
Expect to get asked more questions before solutions can be proposed.
|
||||
.SH AUTHOR
|
||||
Thomas Schmitt <scdbackup@gmx.net>
|
||||
.br
|
||||
for libburnia\-project.org
|
||||
.SH COPYRIGHT
|
||||
Copyright (c) 2019 Thomas Schmitt
|
||||
.br
|
||||
Permission is granted to distribute this text freely. It shall only be
|
||||
modified in sync with the technical properties of xorriso\-dd\-target.
|
||||
If you make use of the license to derive modified versions of xorriso\-idd\-target
|
||||
then you are entitled to modify this text under that same license.
|
||||
.SH CREDITS
|
||||
\fBxorriso\-dd\-target\fR is developed in cooperation with Nio Wiklund alias
|
||||
sudodus.
|
518
xorriso-dd-target/xorriso-dd-target.info
Normal file
518
xorriso-dd-target/xorriso-dd-target.info
Normal file
@ -0,0 +1,518 @@
|
||||
This is xorriso-dd-target.info, produced by makeinfo version 5.2 from
|
||||
xorriso-dd-target.texi.
|
||||
|
||||
xorriso-tcltk - Device evaluator and disk image copier for GNU/Linux
|
||||
|
||||
Copyright (C) 2019 Thomas Schmitt
|
||||
|
||||
Permission is granted to distribute this text freely.
|
||||
INFO-DIR-SECTION Archiving
|
||||
START-INFO-DIR-ENTRY
|
||||
* Xorriso-dd-target: (xorriso-dd-target). Device evaluator and disk image copier for GNU/Linux
|
||||
END-INFO-DIR-ENTRY
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Top, Next: Overview, Up: (dir)
|
||||
|
||||
xorriso-dd-target 1.5.3
|
||||
***********************
|
||||
|
||||
xorriso-dd-target - Device evaluator and disk image copier for GNU/Linux
|
||||
* Menu:
|
||||
|
||||
* Overview:: Overview
|
||||
* Options:: Options
|
||||
* Examples:: Examples
|
||||
* Files:: Files
|
||||
* Seealso:: See also
|
||||
* Bugreport:: Reporting bugs
|
||||
* Legal:: Author, Copyright, Credits
|
||||
* CommandIdx:: Alphabetic Option List
|
||||
* ConceptIdx:: Alphabetic List of Concepts and Objects
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Overview, Next: Options, Prev: Top, Up: Top
|
||||
|
||||
1 Overview
|
||||
**********
|
||||
|
||||
'xorriso-dd-target' evaluates block devices of the Linux kernel whether
|
||||
they are suitable targets for a disk image file and optionally copies
|
||||
the image file to one of them.
|
||||
It is specialized on the device names of the Linux kernel and uses the
|
||||
capabilities of util-linux program lsblk. Therefore it refuses to run
|
||||
on non-Linux kernels.
|
||||
|
||||
The main purpose of xorriso-dd-target is to inspect the device files
|
||||
of disk-like storage media and to judge whether they look like removable
|
||||
devices with disposable content.
|
||||
If a single plausible candidate is detected, then the program is willing
|
||||
to copy a disk image file onto it. This will overwrite or make
|
||||
inaccessible the previous partition table and all previous data content
|
||||
of the target device.
|
||||
*Superuser power* is needed for filesystem type identification, for
|
||||
possible unmounting, and for possible image writing. Option
|
||||
*-with_sudo* offers a way to gain this power only for those tasks and to
|
||||
run the program elsewise with a normal user's power.
|
||||
If a particular disk image file is intended as eventual copy source,
|
||||
then its path should be given by option -image_file, so that its size
|
||||
can be used as decision criterion.
|
||||
|
||||
Following are use case descriptions with examples:
|
||||
* Menu:
|
||||
|
||||
* Simplenames:: List plain device names
|
||||
* Listall:: List all devices with reasoning
|
||||
* Givendevices:: Evaluate particular given devices
|
||||
* Plugtest:: Detect intended device by plugging
|
||||
* Dowrite:: Write image to an advised device
|
||||
* Unwise:: Show commands for writing to a not advised device
|
||||
* Reasons:: Alphabetical list of positive and negative reasons
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Simplenames, Next: Listall, Prev: Overview, Up: Overview
|
||||
|
||||
2 List plain device names
|
||||
*************************
|
||||
|
||||
The most simple and most boring use case is a program run without device
|
||||
names and without options -list_all, -plug_test, -DO_WRITE,
|
||||
-dummy_force. It prints on standard output (stdout) only the names of
|
||||
advisable devices without "/dev/" prefix. One name per line and without
|
||||
any reasoning text.
|
||||
Example:
|
||||
$ xorriso-dd-target -with_sudo
|
||||
Testing sudo to possibly get password prompting done now:
|
||||
[sudo] password for thomas:
|
||||
sudo /bin/lsblk seems ok.
|
||||
|
||||
sde
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Listall, Next: Givendevices, Prev: Simplenames, Up: Overview
|
||||
|
||||
3 List all devices with reasoning
|
||||
*********************************
|
||||
|
||||
For the more curious user, there is option *-list_all* which prints the
|
||||
evaluation of each disk-like device that is listed by program lsblk.
|
||||
Optical drives and floppy disks are excluded, though.
|
||||
Each device is shown by one line of the form
|
||||
name : advice : reasoning : info
|
||||
*name* is the device name without "/dev/" prefix.
|
||||
*advice* is either "YES" or "NO". "YES" indicates that the device
|
||||
appears to be pluggable disk-like, not used as system disk or sincere
|
||||
data storage, and - if tested - of sufficient or plausible size.
|
||||
*reasoning* is a blank separated list of words with either suffix '+'
|
||||
for an inviting device property or '-' for a prohibitive property.
|
||||
Normally a single '-' reason disqualifies the device from being
|
||||
advisable. Only if option -look_for_iso is given, a reason "has_...-"
|
||||
can be overridden by the presence of an ISO 9660 filesystem on the
|
||||
device.
|
||||
*info* is composed from VENDOR and MODEL as told by lsblk.
|
||||
Example:
|
||||
$ xorriso-dd-target -with_sudo -list_all
|
||||
...
|
||||
sda : NO : not_usb- has_vfat+ has_ext4- : ATA Samsung SSD 850
|
||||
sdb : NO : not_usb- has_swap- has_ext4- : ATA WDC WD20EFRX-68A
|
||||
sdc : YES : usb+ has_iso9660+ has_vfat+ : Intenso Ultra Line
|
||||
sdd : NO : usb+ has_iso9660+ has_vfat+ has_ext2- : SanDisk Cruzer
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Givendevices, Next: Plugtest, Prev: Listall, Up: Overview
|
||||
|
||||
4 Evaluate particular given devices
|
||||
***********************************
|
||||
|
||||
If *device names* are given instead of option -list_all, then only these
|
||||
devices are inspected. Their result gets listed without the ": info"
|
||||
part, unless option *-with_vendor_model* is given.
|
||||
Device names must not begin by '-' and must be single words. They must
|
||||
not contain '/'. E.g. 'sdc' is valid, '/dev/sdc' is not valid.
|
||||
If one of the given device names gets not advised, the exit value is 1.
|
||||
It makes few sense to give device names which are not listed by
|
||||
-list_all.
|
||||
Examples:
|
||||
$ xorriso-dd-target -with_sudo sdc
|
||||
...
|
||||
sdc : YES : usb+ has_iso9660+ has_vfat+
|
||||
$ xorriso-dd-target sdc
|
||||
sdc : NO : usb+ no_fs_while_not_su-
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Plugtest, Next: Dowrite, Prev: Givendevices, Up: Overview
|
||||
|
||||
5 Detect intended device by plugging
|
||||
************************************
|
||||
|
||||
Option *-plug_test* triggers an interactive method to unambiguously
|
||||
determine the intended target device candidate. It consists of 2 or 3
|
||||
steps.
|
||||
*Step 1* is to have the intended storage device unplugged and to confirm
|
||||
this by pressing the Enter key at the program's prompt. The program
|
||||
will then assess the list of not wanted devices.
|
||||
*Step 2* is to plug in the intended storage device and to confirm this
|
||||
by pressing the Enter key a second time. The program will wait up to 10
|
||||
seconds for a disk-like storage device which is not in the list of not
|
||||
wanted devices. The user may wait with key pressing until the device
|
||||
blinking looks like it is ready.
|
||||
Only if a single new device is found, the program will go on as if a
|
||||
single device name was given. Option -list_all and any device names
|
||||
given as arguments will be ignored.
|
||||
*Step 3* happens only if options -DO_WRITE or -dummy_force are given.
|
||||
The program asks for a final press of the Enter key before real or
|
||||
simulated writing begins.
|
||||
Example:
|
||||
$ xorriso-dd-target -with_sudo -plug_test
|
||||
...
|
||||
Caused by option -plug_test: Attempt to find the desired device by
|
||||
watching it appear after being plugged in.
|
||||
Step 1:
|
||||
Please make sure that the desired target device is plugged _out_ now.
|
||||
Press the Enter key when ready.
|
||||
|
||||
|
||||
Found and noted as _not_ desired: sda sdb sdc
|
||||
Step 2:
|
||||
Please plug in the desired target device and then press the Enter key.
|
||||
|
||||
|
||||
Waiting up to 10 seconds for a new device to be listed ...
|
||||
Found and noted as desired device: sdd
|
||||
|
||||
|
||||
sdd : NO : usb+ has_iso9660+ has_vfat+ has_ext2- : SanDisk Cruzer
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Dowrite, Next: Unwise, Prev: Plugtest, Up: Overview
|
||||
|
||||
6 Write image to an advised device
|
||||
**********************************
|
||||
|
||||
Only if option *-DO_WRITE* is given and -list_all is not, and if exactly
|
||||
one advisable device is listed, it really gets overwritten by the file
|
||||
content of the given -image_file. In this case the exit value is zero
|
||||
if writing succeeded, non-zero else.
|
||||
Option *-dummy* prevents this kind of real action and rather shows the
|
||||
planned umount and dd commands on stdout.
|
||||
Example:
|
||||
$ xorriso-dd-target -with_sudo -plug_test -DO_WRITE \
|
||||
> -image_file debian-live-10.0.0-amd64-xfce.iso
|
||||
... sudo messages and above plug test steps 1 and 2 ...
|
||||
|
||||
|
||||
sde : YES : usb+ has_iso9660+ has_vfat+
|
||||
Step 3:
|
||||
Last chance to abort. Press Enter to start REAL WRITING.
|
||||
|
||||
|
||||
Looking for mount points of sde:
|
||||
/dev/sde1 on /mnt/iso type iso9660 (ro,relatime)
|
||||
/dev/sde2 on /mnt/fat type vfat (rw,...,errors=remount-ro)
|
||||
Unmounted: /dev/sde1
|
||||
Unmounted: /dev/sde2
|
||||
Performing:
|
||||
sudo /bin/dd if='debian-live-10.0.0-amd64-xfce.iso' bs=1M of=/dev/sde ;
|
||||
sync
|
||||
... dd messages ...
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Unwise, Next: Reasons, Prev: Dowrite, Up: Overview
|
||||
|
||||
7 Show commands for writing to a not advised device
|
||||
***************************************************
|
||||
|
||||
There should be no way to convince xorriso-dd-target of writing to a
|
||||
target device which it does not deem advisable. Please report any set
|
||||
of arguments that can be misused for that.
|
||||
The outmost complicity to potentially unwise actions is offered by
|
||||
option *-dummy_force*. If given together with a single device name or
|
||||
with option -plug_test it will act like -dummy -DO_WRITE with this
|
||||
device, even if it looks not advisable. I.e. it will show the shell
|
||||
commands which the program does not dare to perform.
|
||||
Example:
|
||||
$ xorriso-dd-target -with_sudo -dummy_force sdd \
|
||||
> -image_file debian-live-10.0.0-amd64-xfce.iso
|
||||
...
|
||||
sdd : NO : usb+ has_iso9660+ has_vfat+ has_ext2-
|
||||
|
||||
|
||||
Overriding any advice because of -dummy_force
|
||||
Looking for mount points of sdd:
|
||||
/dev/sdd1 on /mnt/iso type iso9660 (ro,relatime)
|
||||
/dev/sdd2 on /mnt/fat type vfat (rw,...,errors=remount-ro)
|
||||
/dev/sdd3 on /mnt/ext type ext2 (rw,relatime)
|
||||
AGAINST THE ADVICE BY THIS PROGRAM, a daring user could do:
|
||||
sudo /bin/umount /dev/sdd1
|
||||
sudo /bin/umount /dev/sdd2
|
||||
sudo /bin/umount /dev/sdd3
|
||||
sudo /bin/dd if='debian-live-10.0.0-amd64-xfce.iso' bs=1M of=/dev/sdd ;
|
||||
sync
|
||||
BE SMART. BE CAUTIOUS. BEWARE.
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Reasons, Next: Options, Prev: Unwise, Up: Overview
|
||||
|
||||
8 Alphabetical list of positive and negative reasons
|
||||
****************************************************
|
||||
|
||||
As stated with use case "List all devices", *reasons* are words with
|
||||
either suffix '+' for an inviting device property or '-' for a
|
||||
prohibitive property.
|
||||
Normally a single '-' reason disqualifies the device from being
|
||||
advisable.
|
||||
|
||||
8.1 Reasons
|
||||
===========
|
||||
|
||||
*has_XYZ-*
|
||||
A filesystem of type XYZ is detected on base device or partition and is
|
||||
spoiling the impression of a device with disposable content.
|
||||
*has_iso9660+*
|
||||
An ISO 9660 filesystem is detected.
|
||||
*has_vfat+*
|
||||
A FAT (MS-DOS-like) filesystem is detected.
|
||||
*look_for_iso++*
|
||||
Option -look_for_iso is given and an ISO 9660 filesystem is detected.
|
||||
This reason overrides any "has_XYZ-" reason.
|
||||
*looks_like_cd_drive-*
|
||||
A given device name looks like the name of an optical drive: sr[0-9]*.
|
||||
Use program *xorrecord* for this kind of devices.
|
||||
*looks_like_disk_partition-*
|
||||
A given device name looks like the name of a partition. Expected are
|
||||
names of base devices, like "sde", not of their partitions, like "sde1".
|
||||
|
||||
*lsblk_no_size-*
|
||||
A size test is given by -max_size, -min_size, or -image_file but the
|
||||
size of the device cannot be inquired by lsblk. This is supposed to
|
||||
happen only with given inappropriate device names.
|
||||
*mmcblk+*
|
||||
The device name looks like a directly connected memory card.
|
||||
*name_with_slash-*
|
||||
A given device name contains '/' characters.
|
||||
*no_bus_info-*
|
||||
The device is not a memory card and lsblk reports nothing about the way
|
||||
how it is connected to the computer.
|
||||
*no_fs_while_not_su-*
|
||||
No filesystem is reported by lsblk and the program does not believe to
|
||||
have run it with superuser powers. There is the risk that lsblk
|
||||
silently failed to detect existing filesystems.
|
||||
*no_iso9660-*
|
||||
Option -look_for_iso is given but no ISO 9660 filesystem is detected.
|
||||
*not_usb-*
|
||||
The device is not a memory card and lsblk reports that it is connected
|
||||
by something other than USB.
|
||||
*size_too_large-*
|
||||
Option -max_size is given with a size smaller than the size of the
|
||||
device.
|
||||
*size_too_small-*
|
||||
Option -min_size or -image_file is given with size or file size larger
|
||||
than the size of the device.
|
||||
*usb+*
|
||||
The device is reported by lsblk to be connected via USB.
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Options, Next: Examples, Prev: Overview, Up: Top
|
||||
|
||||
9 Options
|
||||
*********
|
||||
|
||||
-plug_test
|
||||
Find the target device by asking the user to press the Enter key
|
||||
when the desired target is _not_ plugged in, to then plug it in,
|
||||
and to press Enter again.
|
||||
This overrides device names and option -list_all. The found device
|
||||
is then shown with advice, vendor, and model.
|
||||
Option -DO_WRITE is obeyed if given. In this case a final Enter
|
||||
key is demanded before writing begins.
|
||||
-list_all
|
||||
Print list of all found devices with advice, vendor and model. One
|
||||
per line. Ignore any device names. Ignore -DO_WRITE.
|
||||
-with_vendor_model
|
||||
Print vendor and model with each submitted device name.
|
||||
-max_size n[M|G|T]
|
||||
Set the upper byte size limit for advisable devices. Plain numbers
|
||||
get rounded down to full millions. As suffix are recognized: M =
|
||||
million, G = billion, T = trillion.
|
||||
Be generous to avoid problems with GB < GiB.
|
||||
-min_size n[M|G|T]
|
||||
Set the lower byte size limit for advisable devices. After
|
||||
processing like with -max_size, one million gets added to the size
|
||||
limit.
|
||||
-look_for_iso
|
||||
Demand presence of an ISO 9660 filesystem. If so, then any further
|
||||
filesystem type is acceptable on that device.
|
||||
If this option is missing, only ISO 9660 and VFAT filesystems are
|
||||
accepted.
|
||||
-with_sudo
|
||||
Run 'lsblk -o FSTYPE' by sudo. If no filesystems are detected on a
|
||||
device while the program has no superuser power, then the device is
|
||||
not advised. Option -with_sudo avoids this refusal without the
|
||||
need to run the whole program as superuser.
|
||||
If -DO_WRITE -with_sudo is given, then the programs umount and dd
|
||||
will be run by sudo, too.
|
||||
-image_file PATH
|
||||
Set the path of the image file which shall be written to a device.
|
||||
Its size will be set as -min_size.
|
||||
-DO_WRITE
|
||||
Write the given -image_file to the one advisable device that is
|
||||
found. If more than one such device is found, then they get listed
|
||||
but no writing happens.
|
||||
In this case, to get a real write run, consider unplugging unneeded
|
||||
devices, or using option -plug_test, or a re-run with one of the
|
||||
advised device names as additional argument.
|
||||
-dummy
|
||||
Report the -DO_WRITE actions but do not perform them.
|
||||
-dummy_force
|
||||
If a single device name is given, do a run of -dummy -DO_WRITE even
|
||||
against the advice of this program. This probably shows you ways
|
||||
to shoot your own foot.
|
||||
-help
|
||||
Print the help text to stdout and then end the program.
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Examples, Next: Files, Prev: Options, Up: Top
|
||||
|
||||
10 Examples
|
||||
***********
|
||||
|
||||
Examples are given in the above description of use cases.
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Files, Next: Seealso, Prev: Examples, Up: Top
|
||||
|
||||
11 Files
|
||||
********
|
||||
|
||||
For now, no files are defined for configuration.
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Seealso, Next: Bugreport, Prev: Files, Up: Top
|
||||
|
||||
12 See also
|
||||
***********
|
||||
|
||||
lsblk(8), sudo(8), umount(8), dd(1), xorrecord(1)
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Bugreport, Next: Legal, Prev: Seealso, Up: Top
|
||||
|
||||
13 Reporting bugs
|
||||
*****************
|
||||
|
||||
To report bugs, request help, or suggest enhancements for
|
||||
'xorriso-dd-target', please send electronic mail to the public list
|
||||
<bug-xorriso@gnu.org>. If more privacy is desired, mail to
|
||||
<scdbackup@gmx.net>.
|
||||
|
||||
Please describe what you expect the program to do, the program
|
||||
arguments which you used, the messages of 'xorrisodd-target', and the
|
||||
undesirable outcome of your program run.
|
||||
|
||||
Expect to get asked more questions before solutions can be proposed.
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: Legal, Next: CommandIdx, Prev: Bugreport, Up: Top
|
||||
|
||||
14 Author, Copyright, Credits
|
||||
*****************************
|
||||
|
||||
14.1 Author
|
||||
===========
|
||||
|
||||
Thomas Schmitt <scdbackup@gmx.net>
|
||||
for libburnia-project.org
|
||||
|
||||
14.2 Copyright
|
||||
==============
|
||||
|
||||
Copyright (c) 2019 Thomas Schmitt
|
||||
Permission is granted to distribute this text freely. It shall only be
|
||||
modified in sync with the technical properties of xorriso-dd-target. If
|
||||
you make use of the license to derive modified versions of
|
||||
xorriso-idd-target then you are entitled to modify this text under that
|
||||
same license.
|
||||
|
||||
14.3 Credits
|
||||
============
|
||||
|
||||
'xorriso-dd-target' is developed in cooperation with Nio Wiklund alias
|
||||
sudodus.
|
||||
|
||||
|
||||
File: xorriso-dd-target.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
||||
|
||||
15 Alphabetic Options List
|
||||
**************************
|
||||
|
||||
|