Revert "Merge of latest changes into RTD theme to enable multi-language support (#604)"
This reverts commit 186f1e02b8.
@@ -0,0 +1,48 @@
|
||||
.. _clear-linux:
|
||||
|
||||
|CL-PRJ|
|
||||
#############################################
|
||||
|
||||
Welcome to the |CL-ATTR| documentation pages, the source for |CL| documentation.
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/JFg-_5xihkE" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
|
||||
|
||||
Our documentation is divided into the following sections:
|
||||
|
||||
* :ref:`get-started`
|
||||
|
||||
If you are new to |CL|, get started fast with tutorials for installing |CL| on
|
||||
bare metal, in a virtual environment, or as a live image on a USB stick.
|
||||
|
||||
* :ref:`concepts`
|
||||
|
||||
Wondering what makes |CL| different? Learn about |CL| features and what
|
||||
differentiates |CL| from other Linux distros.
|
||||
|
||||
* :ref:`guides`
|
||||
|
||||
Guides show how to complete common tasks that help you leverage |CL| native
|
||||
features effectively. From basic system configuration to advanced management
|
||||
of a cloud installation, there is a guide for you.
|
||||
|
||||
* :ref:`tutorials`
|
||||
|
||||
|CL| tutorials provide step-by-step instructions on how |CL| features can
|
||||
be used and extended, frequently with third-party tools.
|
||||
|
||||
* :ref:`reference`
|
||||
|
||||
Find the detailed information you need to enable your configuration or task
|
||||
in our |CL| reference section.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:hidden:
|
||||
|
||||
get-started/get-started
|
||||
concepts/concepts
|
||||
guides/guides
|
||||
tutorials/tutorials
|
||||
reference/reference
|
||||
@@ -0,0 +1,106 @@
|
||||
.. _autospec-about:
|
||||
|
||||
Autospec
|
||||
########
|
||||
|
||||
``autospec`` is a tool to assist in the automated creation and maintenance of
|
||||
RPM packaging in |CL-ATTR|. Where a standard RPM build process using ``rpmbuild``
|
||||
requires a tarball and .spec file to start, ``autospec`` requires only a tarball
|
||||
and package name to start.
|
||||
|
||||
How autospec works
|
||||
******************
|
||||
|
||||
``autospec`` attempts to infer the requirements of the .spec file by analyzing
|
||||
the source code and :file:`Makefile` information. It will continuously run
|
||||
updated builds based on new information discovered from build failures until it
|
||||
has a complete and valid .spec file. Although not required, you can influence
|
||||
the behavior of ``autospec`` by providing :ref:`control files <control-files>`.
|
||||
|
||||
The basic process is described in the following steps:
|
||||
|
||||
#. The :command:`make autospec` command generates a .spec based on
|
||||
analysis of code and control files, if present.
|
||||
|
||||
#. ``autospec`` creates a ``build root`` with ``mock`` config.
|
||||
|
||||
#. ``autospec`` attempts to build an RPM from the generated .spec.
|
||||
|
||||
#. ``autospec`` detects any missed declarations in the .spec.
|
||||
|
||||
#. If build errors occur, ``autospec`` will scan the build log to try and detect
|
||||
the root cause.
|
||||
|
||||
#. If ``autospec`` detects the root cause and knows how to continue, it will restart the build
|
||||
automatically at step 1 with updated build instructions.
|
||||
|
||||
#. Otherwise, ``autospec`` will stop the build for user inspection and editing of control files
|
||||
to resolve the errors. The user resumes the process at step 1 after errors are resolved.
|
||||
|
||||
Following these steps, ``autospec`` continues to rebuild the package, based on
|
||||
new information discovered from build failures, until it has a valid .spec. If
|
||||
no build errors occur, RPM packages are successfully built.
|
||||
|
||||
.. _control-files:
|
||||
|
||||
Control files
|
||||
*************
|
||||
|
||||
It is possible to influence the behavior of ``autospec`` by providing control
|
||||
files. These files may be used to alter the default behavior of the configure
|
||||
routine, to blacklist build dependencies, etc. Control files must be located
|
||||
in the same directory as the resulting .spec.
|
||||
|
||||
Table 1 shows control files used to control dependencies, for example.
|
||||
|
||||
.. list-table:: **Table 1. Control files to control dependencies**
|
||||
:widths: 20 80
|
||||
:header-rows: 1
|
||||
|
||||
* - Filename
|
||||
- Description
|
||||
* - buildreq_add
|
||||
- Each line in the file provides the name of a package to add as a
|
||||
build dependency to the .spec.
|
||||
* - buildreq_ban
|
||||
- Each line in the file is a build dependency that under no
|
||||
circumstance should be automatically added to the build dependencies.
|
||||
This is useful to block automatic configuration routines adding
|
||||
undesired functionality, or to omit any automatically discovered
|
||||
dependencies during tarball scanning.
|
||||
* - pkgconfig_add
|
||||
- Each line in the file is assumed to be a pkgconfig() build
|
||||
dependency. Add the pkg-config names here, as ``autospec`` will
|
||||
automatically transform the names into their ``pkgconfig($name)``
|
||||
style when generating the .spec.
|
||||
* - pkgconfig_ban
|
||||
- Each line in this file is a pkgconfig() build dependency that should
|
||||
not be added automatically to the build, much the same as
|
||||
`` buildreq_ban``. As with ``pkgconfig_add``, these names are
|
||||
automatically transformed by ``autospec`` into their correct
|
||||
``pkgconfig($name))`` style.
|
||||
* - requires_add
|
||||
- Each line in the file provides the name of a package to add as a
|
||||
runtime dependency to the .spec.
|
||||
* - requires_ban
|
||||
- Each line in the file is a runtime dependency that under no
|
||||
circumstance should be automatically added to the runtime
|
||||
dependencies. This is useful to block automatic configuration
|
||||
routines adding undesired functionality, or to omit any automatically
|
||||
discovered dependencies during tarball scanning.
|
||||
|
||||
Further control of the build can be achieved through the use of the
|
||||
``options.conf`` file. If this file does not exist, it is created by
|
||||
``autospec`` with default values. If certain deprecated configuration
|
||||
files exists ``autospec`` will use the value indicated by those files and
|
||||
remove them.
|
||||
|
||||
For a comprehensive list of control files, view the `autospec readme`_.
|
||||
|
||||
Related topics
|
||||
**************
|
||||
|
||||
* :ref:`autospec`
|
||||
* :ref:`mixer`
|
||||
|
||||
.. _autospec readme: https://github.com/clearlinux/autospec
|
||||
@@ -0,0 +1,30 @@
|
||||
.. _bundles-about:
|
||||
|
||||
Bundles
|
||||
#######
|
||||
|
||||
Linux-based operating systems contain the code of several hundred, if
|
||||
not thousands, of open source projects. To make this manageable,
|
||||
distributions use a concept called "packages" to configure and compile
|
||||
the source code of these projects into binaries.
|
||||
|
||||
Many distributions then split the content of these compiled packages
|
||||
into so-called sub-packages, which are the granularity at which these
|
||||
distributions deploy their software. With those kinds of distributions,
|
||||
system administrators can then install and update sub-packages
|
||||
individually or as a set, using tools such as "yum" and "apt-get."
|
||||
|
||||
The |CL-ATTR| takes a slightly different approach. While we also use the
|
||||
concept of packages to manage compiling source code into binaries, we do not
|
||||
use the package concept to deploy software. Instead, we provide software
|
||||
"bundles" that are installed and managed using :ref:`swupd<swupd-about>`.
|
||||
Each bundle contains as many or as few open source projects needed to provide a complete functionality.
|
||||
|
||||
Next steps
|
||||
==========
|
||||
|
||||
To put this concept into practice, see the following resources:
|
||||
|
||||
* :ref:`bundles`
|
||||
* :ref:`bundle-commands`
|
||||
* :ref:`compatible-kernels`
|
||||
@@ -0,0 +1,18 @@
|
||||
.. _concepts:
|
||||
|
||||
Concepts
|
||||
########
|
||||
|
||||
|CL-ATTR| does things differently than other Linux distributions. Use the concepts section to learn in detail about the features that make |CL|
|
||||
different.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
swupd-about
|
||||
mixer-about
|
||||
bundles-about
|
||||
autospec-about
|
||||
restart
|
||||
security
|
||||
telemetry-about
|
||||
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 131 KiB |
@@ -0,0 +1,54 @@
|
||||
.. _mixer-about:
|
||||
|
||||
Mixer
|
||||
#####
|
||||
|
||||
|CL-ATTR| is a powerful, modular, and customizable OS. Upstream |CL| offers
|
||||
many images to support different environments and use-cases. There are
|
||||
hundreds of bundles that will meet most, if not all, of your OS and software
|
||||
needs.
|
||||
|
||||
However, if you need additional customization or content, |CL| provides the
|
||||
mixer tool. Depending on your needs, the mixer tool allows you to:
|
||||
|
||||
* :ref:`create-mix` to create a distinct derivative of the |CL| that
|
||||
contains your custom software.
|
||||
|
||||
.. _create-mix:
|
||||
|
||||
Create a mix
|
||||
============
|
||||
|
||||
When creating a mix, you can
|
||||
|
||||
* Use any existing upstream bundles with no modification.
|
||||
* Redefine what goes into existing bundles.
|
||||
* Create completely new, custom bundles with your own custom packages.
|
||||
|
||||
With mixer you are not required to incorporate every upstream release into
|
||||
your mix. You decide which upstream versions to update your derivative to, as
|
||||
illustrated in Figure 1.
|
||||
|
||||
.. figure:: figures/mixer-about-1.png
|
||||
:scale: 75%
|
||||
:alt: Creating a custom mix.
|
||||
|
||||
Figure 1: With a custom mix, you add your custom bundle and decide which
|
||||
upstream versions to update your mix to, on your own release cycle.
|
||||
|
||||
Creating your own mix forks away from the |CL| upstream and requires that you
|
||||
act as your own OSV. There is a greater level of responsibility, requiring
|
||||
more infrastructure and processes to adopt. However, with this approach, you
|
||||
have a higher degree of control and customization of your custom |CL|.
|
||||
|
||||
Related topics
|
||||
==============
|
||||
|
||||
|CL| provides flexibility in how you customize your OS. Learn more about
|
||||
mixer and related topics to decide which customization approach is best for
|
||||
you.
|
||||
|
||||
* :ref:`mixer`
|
||||
* :ref:`bundles-about`
|
||||
* :ref:`swupd-about`
|
||||
* :ref:`deploy-at-scale`
|
||||
@@ -0,0 +1,189 @@
|
||||
.. _restart:
|
||||
|
||||
Restart system services after an OS update
|
||||
##########################################
|
||||
|
||||
The software life cycle describes how software is created, developed, and
|
||||
deployed, and includes how to replace or update software. A good OS
|
||||
provides tools for the entire software life cycle. These tools must include
|
||||
ways to remove software components properly when replaced with something
|
||||
else.
|
||||
|
||||
Most of the work on software update code in |CL| was focused on adding new
|
||||
software to the system. We recommended that users reboot their system once in
|
||||
a while, but we did not provide any tools to restart services easily, until
|
||||
now.
|
||||
|
||||
User challenges
|
||||
***************
|
||||
|
||||
It is difficult to determine which services to restart. You can either
|
||||
evaluate each system and reboot manually, or figure out which services to
|
||||
restart based on documentation like the |CL| release notes. Since neither
|
||||
option solves the issue completely, the |CL| team created a solution.
|
||||
|
||||
Over the years, several OSes approached the problem and created partial
|
||||
solutions such as the following:
|
||||
|
||||
* Automatically restart services during an upgrade.
|
||||
* Evaluate services using these steps:
|
||||
|
||||
* Mark updates requiring a reboot, such as kernel updates.
|
||||
* Inform the user of those updates.
|
||||
* Ask the user to restart the OS.
|
||||
|
||||
Both solutions are acceptable for many OSes. However, |CL| updates software
|
||||
automatically and users do not see notices from the updater unless they
|
||||
review the journal. |CL| requires a completely different solution, with the
|
||||
following requirements:
|
||||
|
||||
* Eliminate the guesswork about what to restart and under what circumstances.
|
||||
* Cannot restart everything. Many service daemons do not support an automatic
|
||||
background restart.
|
||||
* Fit into the |CL| architectural perspective: be small, quick, and lean.
|
||||
|
||||
clr-service-restart functionality
|
||||
*********************************
|
||||
|
||||
Typical reasons to restart a service daemon include:
|
||||
|
||||
* A new version replaces the executable file itself.
|
||||
* A new version replaces a library component used by a service daemon.
|
||||
|
||||
Our method restarts daemons when it is really needed, especially
|
||||
in the case of security updates. The tool restarts daemons by reading
|
||||
various files in the :file:`procfs` filesystem provided by the kernel.
|
||||
|
||||
The second part of the problem is to determine whether or not running
|
||||
processes are part of a system service. The tool focuses on system services
|
||||
because most system services are background tasks with no direct user
|
||||
interaction. Fortunately, :command:`systemd` provides a simple way to:
|
||||
|
||||
* Determine which active tasks are within the system domain.
|
||||
* Determine which tasks map to which service.
|
||||
|
||||
We combined both solutions into a low-overhead tool that shows which system
|
||||
daemons require a restart, as shown below:
|
||||
|
||||
Figure 1: Invoke :command:`clr-service-restart`.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo clr-service-restart -a -n
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
upower.service: needs a restart (a library dependency was updated)
|
||||
/usr/bin/systemctl --no-ask-password try-restart upower.service
|
||||
NetworkManager.service: needs a restart (a library dependency was
|
||||
updated)
|
||||
/usr/bin/systemctl --no-ask-password try-restart NetworkManager.service
|
||||
....
|
||||
|
||||
:command:`clr-service-restart` implements a whitelist to identify which
|
||||
daemons can be restarted. The system administrator can customize the default
|
||||
|CL| OS whitelist using *allow* or *disallow* options for
|
||||
restarting system services. When a software update occurs,
|
||||
:command:`clr-service-restart` consults the whitelist to see if a service
|
||||
daemon is allowed to be restarted or not. See the options section for
|
||||
details.
|
||||
|
||||
|
||||
Options for clr-service-restart
|
||||
*******************************
|
||||
|
||||
The *allow* option identifies a daemon to restart after an OS software
|
||||
update. The :command:`clr-service-restart` daemon creates a symlink in
|
||||
:file:`/etc/clr-service-restart` as a record. The example below tells
|
||||
:command:`clr-service-restart` to restart the *tallow* daemon after an
|
||||
OS software update.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo clr-service-restart allow tallow.service
|
||||
|
||||
The *disallow* option tells :command:`clr-service-restart` not to
|
||||
restart the specified daemon even if the OS defaults permit the daemon to be
|
||||
restarted. The :command:`clr-service-restart` daemon creates a symlink in
|
||||
:file:`/etc/clr-service-restart` that points to :file:`/dev/null` as a
|
||||
record. The example below tells :command:`clr-service-restart` not to
|
||||
restart the *rngd* daemon after an OS software update.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo clr-service-restart disallow rngd
|
||||
|
||||
The *default* option makes :command:`clr-service-restart` revert back
|
||||
to the OS defaults and delete any symlink
|
||||
in :file:`/etc/clr-service-restart`. The example below
|
||||
tells :command:`clr-service-restart` to restart *rngd* automatically again,
|
||||
because *rngd* is whitelisted for automatic service restarts by default
|
||||
in |CL|.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo clr-service-restart default rngd
|
||||
|
||||
Monitor options for clr-service-restart
|
||||
=======================================
|
||||
|
||||
:command:`clr-service-restart` works in the background and is invoked with
|
||||
:command:`swupd` automatically. Review the journal output to verify that
|
||||
services are restarted after an OS software update.
|
||||
|
||||
To monitor :command:`clr-service-restart`, use one or both options described
|
||||
below.
|
||||
|
||||
.. option:: -n
|
||||
|
||||
This option makes :command:`clr-service-restart` perform no restarts.
|
||||
Instead it displays the services that could potentially be restarted.
|
||||
When used, :command:`clr-service-restart` outputs a list of messages
|
||||
showing:
|
||||
|
||||
* Which service needs a restart.
|
||||
* What unit it is.
|
||||
* Why it needs a restart.
|
||||
* Which command is required to restart the unit.
|
||||
|
||||
.. option:: -a
|
||||
|
||||
This option makes :command:`clr-service-restart` consider all system
|
||||
services, not only the ones that are whitelisted. Because the default
|
||||
whitelist in |CL| is relatively short, you can use this option to
|
||||
restart all impacted services when you log in on the system.
|
||||
|
||||
If you pass both options (:option:`-a` and :option:`-n`),
|
||||
:command:`clr-service-restart` displays a complete list of system services
|
||||
that require a restart. Use both options to verify that all desired daemons
|
||||
are restarted.
|
||||
|
||||
|
||||
Telemetry
|
||||
*********
|
||||
|
||||
:command:`clr-service-restart` may cause problems such as a short service
|
||||
outage when a daemon is being restarted, or if a daemon fails to properly
|
||||
restart. To minimize issues, :command:`clr-service-restart` creates a
|
||||
telemetry record and sends it to the optional |CL| telemetry service if both
|
||||
conditions below are met:
|
||||
|
||||
* If a unit fails to automatically restart after an OS update.
|
||||
* If that unit resides in the system
|
||||
location :file:`/usr/lib/systemd/system`.
|
||||
|
||||
If you do not install the |CL| telemetrics bundle, the data is discarded. If
|
||||
you install the telemetrics bundle and you opt to send telemetry, then the
|
||||
system unit name is sent to the |CL| telemetry service. We evaluate the
|
||||
report and update the whitelist to remove services that are not safe to
|
||||
restart.
|
||||
|
||||
Conclusion
|
||||
**********
|
||||
|
||||
The |CL| team enjoys coming up with simple and efficient solutions to make
|
||||
your work easier. We made a github project of :command:`clr-service-restart`
|
||||
and we invite you to look at the code, share your thoughts, and work with us
|
||||
on improving the project. You can find the project at:
|
||||
|
||||
https://github.com/clearlinux/clr-service-restart
|
||||
@@ -0,0 +1,199 @@
|
||||
.. _security:
|
||||
|
||||
OS Security
|
||||
*************************
|
||||
|
||||
|CL-ATTR| aims to make systemic and layered security-conscious decisions
|
||||
that are both performant and practical. This security philosophy is rooted
|
||||
within the project's codebase and operating culture.
|
||||
|
||||
|
||||
.. contents:: :local:
|
||||
:depth: 1
|
||||
|
||||
|
||||
|
||||
Security in Updates
|
||||
===================
|
||||
|
||||
The |CL| team believes in the benefits of
|
||||
software security through open sourcing, incremental updates, and
|
||||
rapidly resolving known security advisories.
|
||||
|
||||
|
||||
|
||||
The latest Linux* codebase
|
||||
--------------------------
|
||||
|
||||
|CL| uses the newest version of the Linux kernel which allows the operating
|
||||
system to leverage the latest features from the upstream Linux kernel,
|
||||
including security fixes.
|
||||
|
||||
|
||||
|
||||
|
||||
Automated Effective Updating
|
||||
----------------------------
|
||||
|
||||
|CL| is incrementally updated multiple times per day.
|
||||
|
||||
This `rolling release model`_ allows |CL| to consume the latest security
|
||||
fixes of software packages as soon as they become available.
|
||||
There is no waiting for major or minor releases on |CL|.
|
||||
|
||||
An update is not effective if it is just simply downloaded onto a system.
|
||||
It needs to be obtained *AND* ensured that the new patched copy is being
|
||||
used; not an older copy loaded into memory. |CL| will let you know when a
|
||||
service needs to be rebooted or do it for your automatically after
|
||||
a software update, if desired.
|
||||
|
||||
|
||||
In |CL| updates are delivered automatically, efficiently,
|
||||
and effectively. For more information see
|
||||
`documentation about Software Updates`_ in |CL|.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Automated CVE Scanning and Remediation
|
||||
--------------------------------------
|
||||
|
||||
The sheer number of software packages and security vulnerabilities is growing
|
||||
exponentially. Repositories of Common Vulnerabilities and Exposures (CVEs)
|
||||
and their fixes, if known, are published by :abbr:`NIST` in a
|
||||
National Vulnerability Database \ |NVD|\ and at \ |MITRE|\ .
|
||||
|
||||
|
||||
|CL| employs a proactive and measured approach to addressing known
|
||||
and fixable :abbr:`CVEs (Common Vulnerabilities and Exposures)`.
|
||||
Packages are automatically scanned against
|
||||
:abbr:`CVEs (Common Vulnerabilities and Exposures)` daily, and security
|
||||
patches are deployed as soon as they are available.
|
||||
|
||||
These combined practices minimize the amount of
|
||||
time |CL| systems are exposed to unnecessary security risk.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Security in Software
|
||||
====================
|
||||
|
||||
|
||||
Minimized attack surface
|
||||
-------------------------
|
||||
|
||||
|CL| removes legacy, unneeded, or redundant standards and
|
||||
components as much as possible to enable the use of best known security
|
||||
standards. Below are some examples:
|
||||
|
||||
* `RC4`, `SSLv3`, `3DES`, and `SHA-1` ciphers which have had known
|
||||
vulnerabilities, have been explicitly disabled within many |CL| packages to
|
||||
avoid their accidental usage.
|
||||
|
||||
* Services and subsystems which expose sensitive system information
|
||||
have been removed such as the `finger` and `tcpwrappers`.
|
||||
|
||||
* `SFTP` has been disabled by default due to security
|
||||
considerations.
|
||||
|
||||
|
||||
Verified trust
|
||||
--------------
|
||||
|
||||
|CL| encourages the use of secure practices such as encryption
|
||||
and digital signature verification throughout the system and discourages blind
|
||||
trust. Below are some examples:
|
||||
|
||||
* All update operations from swupd are transparently encrypted and checked
|
||||
against the |CL| maintainers' public key for authenticity.
|
||||
More information can be found in this blog post:
|
||||
`blog post about swupd security`_
|
||||
|
||||
* Before being built, packages available from |CL| verify checksums and
|
||||
signatures provided by third party project codebases and maintainers.
|
||||
|
||||
* |CL| features a unified certificate store, `clrtrust`_ which comes
|
||||
ready to work with well-known Certificate Authorities out of the box.
|
||||
`clrtrust`_ also offers an easy to use command line interface for managing
|
||||
system-wide chains of trust, instead of ignoring foreign certificates.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Compiled with secure options
|
||||
----------------------------
|
||||
|
||||
While |CL| packages are optimized for performance on
|
||||
Intel® architecture, security conscious kernel and compiler options are
|
||||
sensibly taken advantage of. Below are some examples:
|
||||
|
||||
|
||||
* Kernels shipped with |CL| are signed and disallow the usage of
|
||||
custom kernel modules to maintain verifiable system integrity.
|
||||
|
||||
* `Address space layout randomization (ASLR)`_ and
|
||||
`Kernel address space layout randomization (KASLR)`_ are kernel features
|
||||
which defend against certain memory based attacks.
|
||||
More information can be found in a `blog post about PIE executables`_ .
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Security in System Design
|
||||
=========================
|
||||
|
||||
Simple, yet effective, techniques are used throughout the
|
||||
|CL| system design to defend against common attack vectors and enable
|
||||
good security hygiene. Below are some examples:
|
||||
|
||||
|
||||
* Full disk encryption using `Linux Unified Key Setup`_ (LUKS) is available
|
||||
during installation.
|
||||
|
||||
* |CL| uses the PAM cracklib module to harden user login and password
|
||||
security resulting in:
|
||||
|
||||
- No default username or root password set out of the box with
|
||||
|CL|, you will be asked to set your own password immediately.
|
||||
|
||||
- Simple password schemes, which are known to be easily compromised,
|
||||
cannot be set in |CL|.
|
||||
|
||||
- A password blacklist, to avoid system passwords being set to
|
||||
passwords which have been compromised in the past.
|
||||
|
||||
* `Tallow`_, a lightweight service which monitors and blocks suspicious SSH
|
||||
login patterns, is installed with the :command:`openssh-server` bundle.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. _`documentation about Software Updates`: https://clearlinux.org/documentation/clear-linux/concepts/swupd-about
|
||||
.. _`cve-check-tool`: https://github.com/clearlinux/cve-check-tool
|
||||
.. _`blog post about swupd security`: https://clearlinux.org/blogs/security-software-update-clear-linux-os-intel-architecture
|
||||
.. _`rolling release model`: https://en.wikipedia.org/wiki/Rolling_release
|
||||
.. _`clrtrust`: https://github.com/clearlinux/clrtrust
|
||||
.. _`Address space layout randomization (ASLR)`: https://en.wikipedia.org/wiki/Address_space_layout_randomization
|
||||
.. _`Kernel address space layout randomization (KASLR)`: https://lwn.net/Articles/569635/
|
||||
.. _`dm-verity`: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/device-mapper/verity.txt
|
||||
.. _`SELinux`: https://github.com/SELinuxProject
|
||||
.. _`Linux Unified Key Setup`: https://gitlab.com/cryptsetup/cryptsetup/
|
||||
.. _`blog post about PIE executables`: https://clearlinux.org/blogs/recent-gnu-c-library-improvements
|
||||
.. _`Tallow`: https://github.com/clearlinux/tallow
|
||||
|
||||
.. |NVD| raw:: html
|
||||
|
||||
<a href="https://nvd.nist.gov/" target="_blank">https://nvd.nist.gov/</a>
|
||||
|
||||
.. |MITRE| raw:: html
|
||||
|
||||
<a href="https://cve.mitre.org/" target="_blank">https://cve.mitre.org/</a>
|
||||
@@ -0,0 +1,101 @@
|
||||
.. _swupd-about:
|
||||
|
||||
swupd: software updater
|
||||
#######################
|
||||
|
||||
:command:`swupd` is an operating system software manager and update program
|
||||
that operates at a file-level to enable verifiable integrity and update
|
||||
efficiency.
|
||||
|
||||
Visit the `swupd man page`_ for more details.
|
||||
|
||||
Versioning
|
||||
==========
|
||||
|
||||
Using package managers to keep track of software version compatibility or compare multiple systems on many Linux distributions can be cumbersome.
|
||||
|
||||
With |CL| :command:`swupd`, versioning happens at the individual
|
||||
file-level. This means |CL| generates an entirely new OS version with any set
|
||||
of software changes to the system (including software downgrades or removals). This rolling release versioning model is similar to
|
||||
:command:`git` internal version tracking, where any of the individual file
|
||||
commits are tracked and move the pointer forward when changed.
|
||||
|
||||
While administrators can pick and choose which `bundles`_ a system has
|
||||
installed, a single |CL| version number strictly represents one combination
|
||||
of all software versions that can be installed onto a system of that |CL|
|
||||
version. This method of whole OS versioning offers unique advantages.
|
||||
Namely, system administrators can quickly compare multiple |CL| systems that share the same version for important software and security fixes.
|
||||
|
||||
|
||||
Updating
|
||||
========
|
||||
|
||||
|CL| promotes regular and automated updating of software to ensure
|
||||
integration of new enhancements and security fixes. Refer to :ref:`security`
|
||||
documentation for more information.
|
||||
|
||||
Learn how to update your system using :ref:`swupd <swupd-guide>`.
|
||||
|
||||
Update efficiency
|
||||
-----------------
|
||||
|
||||
Because :command:`swupd` operates at the individual file-level instead of a
|
||||
package-level, |CL| updates are small and fast.
|
||||
|
||||
On many Linux\* distributions, updates to a particular software package
|
||||
require the whole software package to be downloaded and replaced
|
||||
--even for one line of code.
|
||||
|
||||
In |CL|, updates are generated using the :ref:`mixer <mixer-about>` tool. Mixer calculates the difference between two |CL| versions and makes available
|
||||
*binary deltas*, which contain only the changed portion of files. This
|
||||
*binary delta technology* [1]_ means :command:`swupd` on |CL| systems only
|
||||
needs to download and apply a small fraction of a package in order to
|
||||
receive an update.
|
||||
|
||||
The :ref:`mixer <mixer-about>` tool additionally computes updates files in
|
||||
multiple compression formats, allowing :command:`swupd` to utilize the most
|
||||
efficiently compressed format for a |CL| system to minimize the cost
|
||||
to update.
|
||||
|
||||
Update integrity
|
||||
----------------
|
||||
|
||||
:command:`swupd` operates against a published manifest of files for a
|
||||
particular |CL| version that contains the unique hash of each file. This is
|
||||
the basis of the :command:`swupd verify` subcommand, which allows a |CL|
|
||||
system to check for and remediate any discrepancies to system files. As
|
||||
necessary, :command:`swupd verify` provides a useful way for software
|
||||
developers to return to a known filesystem state.
|
||||
|
||||
Bundles
|
||||
=======
|
||||
|
||||
|CL-ATTR| approaches software management differently than many other
|
||||
Linux-based operating systems.
|
||||
|
||||
Instead of deploying granular software packages, |CL| uses the concept of
|
||||
bundles with pre-associated software. Each bundle encapsulates a particular
|
||||
use-case, which is enabled by composing all the required upstream open-source
|
||||
projects and packages into one logical unit.
|
||||
|
||||
This bundle-based approach offers some unique advantages:
|
||||
|
||||
* Bundles provide a particular functionality, or stack, which
|
||||
include all associated runtime dependencies.
|
||||
|
||||
* Software package dependencies are resolved on the server, so file-level
|
||||
conflicts do not occur on the target system after an update.
|
||||
|
||||
* All combinations of bundles are able to co-exist on a |CL| system.
|
||||
|
||||
For more information on bundles, visit:
|
||||
|
||||
* :ref:`bundles`
|
||||
* :ref:`bundles-about`
|
||||
* :ref:`bundle-commands`
|
||||
* :ref:`compatible-kernels`
|
||||
|
||||
.. [1] The software update technology for |CL-ATTR| was first presented at the Linux Plumbers conference in 2012.
|
||||
|
||||
.. _swupd man page: https://github.com/clearlinux/swupd-client/blob/master/docs/swupd.1.rst
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
.. _telemetry-about:
|
||||
|
||||
Telemetrics
|
||||
###########
|
||||
|
||||
One of the key features of |CL-ATTR| is telemetry, which is used to
|
||||
monitor system health. Telemetry enables developers to observe and proactively
|
||||
address issues before end users are impacted.
|
||||
|
||||
*Telemetrics* is a combination word made from:
|
||||
|
||||
* *Telemetry* which is sensing and reporting data.
|
||||
* *Analytics* which is using visualization and statistical inferencing to make
|
||||
sense of the reported data.
|
||||
|
||||
|CL| telemetry reports system-level debug/crash information using specialized probes. The
|
||||
probes monitor system tasks such as :abbr:`swupd (software updater)`, kernel
|
||||
oops, machine error checks, and BIOS error report table for unhandled hardware
|
||||
failures. Telemetry enables real-time issue reporting to allow system
|
||||
developers to quickly focus on an issue and monitor corrective actions.
|
||||
|
||||
|CL| telemetry is fully customizable and can be used during software development
|
||||
for debugging purposes. You can use **libtelemetry** in your code to create custom
|
||||
telemetry records. You can also use **telem-record-gen** in script files or call
|
||||
it from another program.
|
||||
|
||||
Architecture
|
||||
************
|
||||
|
||||
|CL| telemetry has two fundamental components, which are shown in figure 1:
|
||||
|
||||
* Client: generates and delivers records to the backend server via the network.
|
||||
* Backend: captures records sent from the client and displays the cumulative
|
||||
content through a specialized interface.
|
||||
|
||||
.. note::
|
||||
|
||||
If you want to capture your own records for analysis, you must set up
|
||||
your own backend server.
|
||||
|
||||
.. figure:: ../guides/telemetrics/figures/telemetry-e2e.png
|
||||
:scale: 75%
|
||||
:alt: Clear Linux Telemetry Architecture.
|
||||
|
||||
Figure 1: Clear Linux Telemetry Architecture.
|
||||
|
||||
The telemetry client provides the front end of a complete telemetrics solution
|
||||
and includes the following components:
|
||||
|
||||
* **telemprobd**, a daemon that prepares the telemetry records and spools them on disk prior to delivery
|
||||
* **telempostd**, a daemon that sends the records to the telemetry backend server or leaves them on disk until deleting after the record expires.
|
||||
|
||||
* **probes**, that collect specific types of data from the operating system.
|
||||
* **libtelemetry**, that telemetrics probes use to create telemetrics records and
|
||||
send them to the telemprobd daemon for further processing.
|
||||
|
||||
|
||||
The telemetry backend provides the server-side component of a complete telemetrics solution and
|
||||
consists of:
|
||||
|
||||
* Nginx web server.
|
||||
* Two Flask apps:
|
||||
|
||||
* Collector, an ingestion web app for records received from telemetrics-client probes.
|
||||
* TelemetryUI, a web app that exposes several views to visualize the telemetry data
|
||||
and also provides a REST API to perform queries.
|
||||
|
||||
* PostgreSQL as the underlying database server.
|
||||
|
||||
The default telemetry backend server reports back to the |CL| development team
|
||||
and is not viewable outside the Intel firewall. If you want to collect your
|
||||
own records, then you must set up your own telemetry backend server.
|
||||
|
||||
Next steps
|
||||
**********
|
||||
|
||||
To put this concept into practice, see the following resources:
|
||||
|
||||
* :ref:`telem-guide`
|
||||
* `Telemetry feature description`_
|
||||
|
||||
.. _`Telemetry feature description`:
|
||||
https://clearlinux.org/features/telemetry
|
||||
@@ -0,0 +1,496 @@
|
||||
.. _bare-metal-install-desktop:
|
||||
|
||||
Install |CL-ATTR| from the live desktop
|
||||
#######################################
|
||||
|
||||
The live desktop allows you to boot |CL-ATTR| in a GNOME desktop without
|
||||
modifying the host system, offering the chance to explore developing
|
||||
on |CL|. Better yet, launch the |CL| installer to install on your target
|
||||
system.
|
||||
|
||||
.. contents:: :local:
|
||||
:depth: 1
|
||||
|
||||
System requirements
|
||||
*******************
|
||||
|
||||
Assure that your target system supports the installation:
|
||||
|
||||
* :ref:`system-requirements`
|
||||
* :ref:`compatibility-check`
|
||||
|
||||
Preliminary steps
|
||||
*****************
|
||||
|
||||
#. `Visit our Downloads page`_.
|
||||
|
||||
#. Download the file :file:`clear-<release number>-live-desktop.iso`
|
||||
|
||||
.. note::
|
||||
|
||||
<release-number> is the latest |CL| auto-numbered release.
|
||||
|
||||
#. Follow your OS instructions to create a bootable USB drive.
|
||||
|
||||
* :ref:`bootable-usb`
|
||||
|
||||
.. _install-on-target-start:
|
||||
|
||||
Install from live image
|
||||
***********************
|
||||
|
||||
After you download and burn the live desktop image on a USB drive, follow
|
||||
these steps.
|
||||
|
||||
#. Insert the USB drive into an available USB slot.
|
||||
|
||||
#. Power on the system.
|
||||
|
||||
#. Open the system BIOS setup menu by pressing the :kbd:`F2` key.
|
||||
Your BIOS setup menu entry point may vary.
|
||||
|
||||
#. In the setup menu, enable the UEFI boot and set the USB drive as the
|
||||
first option in the device boot order.
|
||||
|
||||
#. Save these settings, e.g. :kbd:`F10`, and exit.
|
||||
|
||||
#. Reboot the target system.
|
||||
|
||||
#. Select :guilabel:`Clear Linux OS` in the boot menu, shown in Figure 1.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-01.png
|
||||
:scale: 100%
|
||||
:alt: Clear Linux OS in boot menu
|
||||
|
||||
Figure 1: Clear Linux OS in boot menu
|
||||
|
||||
.. _install-on-target-end:
|
||||
|
||||
Confirm network connection
|
||||
==========================
|
||||
|
||||
Confirm there is a network connection before launching the installer.
|
||||
Choose a method: `Wired Connection`, or `WiFi Connected`.
|
||||
This guide shows an example of a **Wired Connection**.
|
||||
|
||||
#. In the upper right of the top menu bar, select the square icon to view
|
||||
Network settings, shown in Figure 2.
|
||||
|
||||
#. Select :guilabel:`Wired Connected` and then :guilabel:`Wired Settings`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-02.png
|
||||
:scale: 100%
|
||||
:alt: Software icon, Network settings
|
||||
|
||||
Figure 2: Software icon, Network settings
|
||||
|
||||
#. View the :guilabel:`Wired` menu to assure that you're target system and
|
||||
installer are connected to a network.
|
||||
|
||||
#. Optional: Configure Proxy settings.
|
||||
|
||||
#. To view :guilabel:`Network Proxy`, select its :guilabel:`Gear` icon.
|
||||
|
||||
#. Select from `Automatic`, `Manual` or `Disabled` as desired.
|
||||
|
||||
#. Close the dialogue box.
|
||||
|
||||
#. Select the :guilabel:`Gear` icon to view Network settings.
|
||||
|
||||
#. If desired, select :guilabel:`Connect automatically`.
|
||||
Select other options as desired.
|
||||
|
||||
#. Select :guilabel:`Apply` button to confirm change to settings.
|
||||
|
||||
Software
|
||||
--------
|
||||
|
||||
Optional: Explore |CL| bundles and other software available. Double-click the :guilabel:`Software` icon from the Activities menu, shown in Figure 2.
|
||||
|
||||
.. note::
|
||||
|
||||
`Sofware` application is *only intended for exploring* available bundles,
|
||||
applications, and images. Do not attempt to install them.
|
||||
|
||||
Assure there is a network connection before launching `Software`.
|
||||
|
||||
Launch the |CL| installer
|
||||
=========================
|
||||
|
||||
#. After the live desktop image boots, find the |CL| icon in
|
||||
the :guilabel:`Activities` menu at left, shown in Figure 3.
|
||||
|
||||
#. Click the icon, :guilabel:`Install Clear Linux OS`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-02.png
|
||||
:scale: 100%
|
||||
:alt: Install Clear Linux OS icon
|
||||
|
||||
Figure 3: Install Clear Linux OS icon
|
||||
|
||||
#. The installer is launched, as shown in Figure 4.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-04.png
|
||||
:scale: 100%
|
||||
:alt: |CL| Desktop Installer
|
||||
|
||||
Figure 4: |CL| OS Desktop Installer
|
||||
|
||||
#. In :guilabel:`Select Language`, select a language from the options, or
|
||||
type your preferred language in the search bar.
|
||||
|
||||
#. Select :guilabel:`Next`.
|
||||
|
||||
|
||||
.. _incl-bare-metal-beta-start:
|
||||
|
||||
Minimum installation requirements
|
||||
*********************************
|
||||
|
||||
To fulfill minimum installation requirements, complete the
|
||||
`Required options`_. We also recommend completing `Advanced options`_.
|
||||
|
||||
.. note::
|
||||
|
||||
* The :kbd:`Install` button is only highlighted **after** you complete
|
||||
`Required options`_.
|
||||
|
||||
* Checkmarks indicate a selection has been made.
|
||||
|
||||
* An Internet connection is required. You may want to launch a browser
|
||||
prior to installation to verify your Internet connection.
|
||||
|
||||
|CL| Desktop Installer
|
||||
**********************
|
||||
|
||||
The |CL| Desktop Installer Main Menu appears as shown in Figure 5. To meet
|
||||
the minimum requirements, enter values in all submenus for the
|
||||
:guilabel:`Required options`. After you complete them, your selections appear
|
||||
below submenus and a checkmark appears at right.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-05.png
|
||||
:scale: 100%
|
||||
:alt: Clear Linux OS Desktop Installer - Main Menu
|
||||
|
||||
Figure 5: Clear Linux OS Desktop Installer - Main Menu
|
||||
|
||||
Navigation
|
||||
**********
|
||||
|
||||
* Use the :kbd:`mouse` to navigate or select options.
|
||||
|
||||
* Use :kbd:`Tab` key to navigate between :guilabel:`Required options`
|
||||
and :guilabel:`Advanced options`
|
||||
|
||||
* Use :kbd:`Up` or :kbd:`Down` arrow keys to navigate submenu list.
|
||||
|
||||
* Select :kbd:`Confirm`, or :kbd:`Cancel` in submenus.
|
||||
|
||||
Required options
|
||||
****************
|
||||
|
||||
Select Time Zone
|
||||
================
|
||||
|
||||
#. From the Main Menu, select :guilabel:`Select Time Zone`. `UTC` is selected
|
||||
by default.
|
||||
|
||||
#. In :guilabel:`Select Time Zone`, navigate to the desired time zone.
|
||||
Or start typing the region and then city.
|
||||
(.e.g., :file:`America/Los_Angeles`).
|
||||
|
||||
#. Select :guilabel:`Confirm`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-06.png
|
||||
:scale: 100%
|
||||
:alt: Select System Timezone
|
||||
|
||||
Figure 6: Select System Time Zone
|
||||
|
||||
Select Keyboard
|
||||
===============
|
||||
|
||||
#. From the Main Menu, select :guilabel:`Select Keyboard`.
|
||||
|
||||
#. Navigate to your desired keyboard layout. We select "us" for the
|
||||
United States.
|
||||
|
||||
#. Select :guilabel:`Confirm`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-07.png
|
||||
:scale: 100%
|
||||
:alt: Select Keyboard menu
|
||||
|
||||
Figure 7: Select Keyboard menu
|
||||
|
||||
Select Installation Media
|
||||
=========================
|
||||
|
||||
#. From the Main Menu, select :guilabel:`Select Installation Media`.
|
||||
|
||||
#. Choose an installation method: `Safe Installation`_ or
|
||||
`Destructive Installation`_.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-08.png
|
||||
:scale: 100%
|
||||
:alt: Select Installation Media
|
||||
|
||||
Figure 8: Select Installation Media
|
||||
|
||||
Safe Installation
|
||||
-----------------
|
||||
Use this method to safely install |CL| on media with available space, or
|
||||
alongside existing partitions, and accept the `Default partition schema`_.
|
||||
If enough free space exists, safe installation is allowed.
|
||||
|
||||
Destructive Installation
|
||||
------------------------
|
||||
|
||||
Use this method to destroy the contents of the target device, install |CL| on it, and accept the `Default partition schema`_.
|
||||
|
||||
Disk encryption
|
||||
===============
|
||||
|
||||
For greater security, disk encryption is supported using LUKS. Encryption is
|
||||
optional.
|
||||
|
||||
#. To encrypt the root partition, select :guilabel:`Enable Encryption`,
|
||||
as shown in Figure 9.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-09.png
|
||||
:scale: 100%
|
||||
:alt: Enable Encryption
|
||||
|
||||
Figure 9: Enable Encryption
|
||||
|
||||
#. When :guilabel:`Encryption Passphrase` appears, enter a passphrase.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-10.png
|
||||
:scale: 100%
|
||||
:alt: Encryption Passphrase
|
||||
|
||||
Figure 10: Encryption Passphrase
|
||||
|
||||
.. note::
|
||||
|
||||
Minimum length is 8 characters. Maximum length is 94 characters.
|
||||
|
||||
#. Enter the same passphrase in the second field.
|
||||
|
||||
#. Select :guilabel:`Confirm` in the dialogue box.
|
||||
|
||||
.. note::
|
||||
|
||||
:guilabel:`Confirm` is only highlighted if passphrases match.
|
||||
|
||||
#. Select :guilabel:`Confirm` in submenu.
|
||||
|
||||
Manage User
|
||||
===========
|
||||
|
||||
#. In Required Options, select :guilabel:`Manage User`.
|
||||
|
||||
#. In :guilabel:`User Name`, enter a user name.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-11.png
|
||||
:scale: 100%
|
||||
:alt: Manage User
|
||||
|
||||
Figure 11: Manage User
|
||||
|
||||
#. In :guilabel:`Login`, create a login name. It must start with a letter
|
||||
and can use numbers, hyphens, and underscores. Maximum length is 31
|
||||
characters.
|
||||
|
||||
#. In :guilabel:`Password`, enter a password. Minimum length is
|
||||
8 characters. Maximum length is 255 characters.
|
||||
|
||||
#. In :guilabel:`Confirm`, enter the same password.
|
||||
|
||||
.. note::
|
||||
|
||||
:guilabel:`Administrator` rights are selected by default.
|
||||
For security purposes, the default user must be assigned as an
|
||||
Administrator.
|
||||
|
||||
#. Select :kbd:`Confirm`.
|
||||
|
||||
.. note::
|
||||
|
||||
Select :guilabel:`Cancel` to return to the Main Menu.
|
||||
|
||||
Modify User
|
||||
-----------
|
||||
|
||||
#. In Manager User, select :guilabel:`Manage User`.
|
||||
|
||||
#. Modify user details as desired.
|
||||
|
||||
#. Select :guilabel:`Confirm` to save the changes you made.
|
||||
|
||||
.. note::
|
||||
|
||||
Optional: Select :guilabel:`Cancel` to return to the Main Menu to
|
||||
revert changes.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Telemetry
|
||||
=========
|
||||
|
||||
Choose whether to participate in `telemetry`. :ref:`telem-guide` is a |CL|
|
||||
feature that reports failures and crashes to the |CL| development
|
||||
team for improvements. For more information, see :ref:`telemetry-about`.
|
||||
|
||||
#. From :guilabel:`Required Options`, select :guilabel:`Telemetry`.
|
||||
|
||||
#. Select :kbd:`Confirm`.
|
||||
|
||||
#. If you don't wish to participate, deselect :kbd:`Enable Telemetry`.
|
||||
|
||||
#. Select :kbd:`Confirm`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-12.png
|
||||
:scale: 100%
|
||||
:alt: Enable Telemetry
|
||||
|
||||
Figure 12: Enable Telemetry
|
||||
|
||||
Advanced options
|
||||
****************
|
||||
|
||||
After you complete the `Required options`_, we recommend completing
|
||||
:guilabel:`Advanced options`--though they're not required. Doing so
|
||||
customizes your development environment, so you're ready to go immediately
|
||||
after reboot.
|
||||
|
||||
* `Bundle Selection`_
|
||||
|
||||
* `Assign Hostname`_
|
||||
|
||||
As for bundles, you can always add more later with :ref:`swupd-guide`.
|
||||
|
||||
Bundle Selection
|
||||
================
|
||||
|
||||
#. On the Advanced menu, select :guilabel:`Bundle Selection`
|
||||
|
||||
#. Select your desired bundles.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-13.png
|
||||
:scale: 100%
|
||||
:alt: Bundle Selection
|
||||
|
||||
Figure 13: Bundle Selection
|
||||
|
||||
#. Select :kbd:`Confirm`.
|
||||
|
||||
#. View the bundles that you selected.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-14.png
|
||||
:scale: 100%
|
||||
:alt: Bundle Selections - Advanced Options
|
||||
|
||||
Figure 14: Bundle Selections - Advanced Options
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Assign Hostname
|
||||
===============
|
||||
|
||||
#. In Advanced Options, select :guilabel:`Assign Hostname`.
|
||||
|
||||
#. In :guilabel:`Hostname`, enter the hostname only (excluding the domain).
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-15.png
|
||||
:scale: 100%
|
||||
:alt: Assign Hostname
|
||||
|
||||
Figure 15: Assign Hostname
|
||||
|
||||
.. note::
|
||||
|
||||
Hostname does not allow empty spaces. Hostname must start with an
|
||||
alphanumeric character but may also contain hyphens. Maximum length of
|
||||
63 characters.
|
||||
|
||||
#. Navigate to :kbd:`Confirm` until highlighted.
|
||||
|
||||
#. Select :kbd:`Confirm`.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Finish installation
|
||||
*******************
|
||||
|
||||
#. When you are satisfied with your installation configuration, select
|
||||
:guilabel:`Install`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-16.png
|
||||
:scale: 100%
|
||||
:alt: Assign Hostname
|
||||
|
||||
Figure 16: Finish installation
|
||||
|
||||
.. note:
|
||||
|
||||
All checkmarks must be visible in :guilabel:`Required Options` for you to select :guilabel:`Install`.
|
||||
|
||||
#. If you do not enter a selection for all :guilabel:`Required Options`,
|
||||
the :guilabel:`Install` button remains greyed out, as shown
|
||||
in Figure 17. Return to `Required Options`_ and make selections.
|
||||
|
||||
|
||||
.. figure:: figures/bare-metal-install-desktop-17.png
|
||||
:scale: 100%
|
||||
:alt: Required Options - Incomplete
|
||||
|
||||
Figure 17: Required Options - Incomplete
|
||||
|
||||
#. After installation is complete, select :guilabel:`Exit`.
|
||||
|
||||
#. Shut down the target system.
|
||||
|
||||
#. Remove the USB or any installation media.
|
||||
|
||||
#. Power on your system.
|
||||
|
||||
.. note::
|
||||
|
||||
Allow time for the graphical login to appear. A login prompt shows the administrative user that you created.
|
||||
|
||||
#. Log in as the adminstrative user.
|
||||
|
||||
Congratulations. You successfully installed |CL|.
|
||||
|
||||
Default partition schema
|
||||
========================
|
||||
|
||||
Table 1 shows the defult partition schema with the exception of root,
|
||||
which varies.
|
||||
|
||||
.. list-table:: **Table 1. Disk Partition Setup**
|
||||
:widths: 33, 33, 33
|
||||
:header-rows: 1
|
||||
|
||||
* - FileSystem
|
||||
- Mount Point
|
||||
- Minimum size
|
||||
* - ``VFAT``
|
||||
- /boot
|
||||
- 150M
|
||||
* - ``swap``
|
||||
-
|
||||
- 256MB
|
||||
* - ``root``
|
||||
- /
|
||||
- *Size depends upon use case/desired bundles.*
|
||||
|
||||
Next steps
|
||||
**********
|
||||
|
||||
:ref:`guides`
|
||||
|
||||
.. _Visit our downloads page: https://clearlinux.org/downloads
|
||||
.. _Autoproxy: https://clearlinux.org/features/autoproxy
|
||||
|
||||
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 196 KiB |
|
After Width: | Height: | Size: 214 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 75 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 77 KiB |
@@ -0,0 +1,855 @@
|
||||
.. _bare-metal-install-server:
|
||||
|
||||
Install |CL-ATTR| on bare metal with live server
|
||||
################################################
|
||||
|
||||
These instructions guide you through installing |CL-ATTR| on bare metal from a bootable USB drive using a live server image.
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
:depth: 1
|
||||
|
||||
System requirements
|
||||
*******************
|
||||
|
||||
Assure that your target system supports the installation:
|
||||
|
||||
* :ref:`system-requirements`
|
||||
* :ref:`compatibility-check`
|
||||
|
||||
Download the latest |CL| live server image
|
||||
******************************************
|
||||
|
||||
Get the latest |CL| installer image from the `downloads page`_. Look for the
|
||||
:file:`clear-[version number]-live-server.iso` file.
|
||||
|
||||
#. Follow your OS instructions to create a bootable USB drive.
|
||||
|
||||
* :ref:`bootable-usb`
|
||||
|
||||
#. After downloading the image, verify and decompress the file per your OS.
|
||||
|
||||
Install |CL| on your target system
|
||||
**********************************
|
||||
|
||||
Ensure that your system is configured to boot UEFI. The installation method
|
||||
described below requires a wired Internet connection with DHCP.
|
||||
|
||||
.. note::
|
||||
|
||||
Alternatively, you can install |CL| over a wireless connection by first
|
||||
using `nmtui`. Follow the `nmtui` instructions shown in Figure 2.
|
||||
|
||||
Follow these steps to install |CL| on the target system:
|
||||
|
||||
#. Insert the USB drive into an available USB slot.
|
||||
|
||||
#. Power on the system.
|
||||
|
||||
#. Open the system BIOS setup menu by pressing the :kbd:`F2` key.
|
||||
Your BIOS setup menu entry point may vary.
|
||||
|
||||
#. In the setup menu, enable the UEFI boot and set the USB drive as the first
|
||||
option in the device boot order.
|
||||
|
||||
#. Save these settings and exit.
|
||||
|
||||
#. Reboot the target system.
|
||||
|
||||
#. This action launches the |CL| installer boot menu, shown in figure 1.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-01.png
|
||||
:scale: 100%
|
||||
:alt: Clear Linux OS Installer boot menu
|
||||
|
||||
Figure 1: Clear Linux OS Installer boot menu
|
||||
|
||||
#. With :guilabel:`Clear Linux OS` highlighted, select :kbd:`Enter`.
|
||||
|
||||
Launch the |CL| Installer
|
||||
*************************
|
||||
|
||||
#. At the :guilabel:`login` prompt, enter :command:`root`.
|
||||
|
||||
#. Follow the onscreen instructions, shown in Figure 2, and
|
||||
enter a temporary password.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-02.png
|
||||
:scale: 100%
|
||||
:alt: root login
|
||||
|
||||
Figure 2: root login
|
||||
|
||||
#. At the :guilabel:`root` prompt, enter :command:`clr-installer` and
|
||||
press :kbd:`Enter`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-03.png
|
||||
:scale: 100%
|
||||
:alt: clr-installer command
|
||||
|
||||
Figure 3: clr-installer command
|
||||
|
||||
Minimum installation requirements
|
||||
*********************************
|
||||
|
||||
To fulfill minimum installation requirements, complete the
|
||||
`Required options`_. While not required, we encourage you to apply the
|
||||
`Recommended options`_. `Advanced options`_ are optional.
|
||||
|
||||
.. note::
|
||||
|
||||
* The :kbd:`Install` button is **only highlighted after** you complete
|
||||
`Required options`_.
|
||||
|
||||
Main Menu
|
||||
*********
|
||||
The |CL| Installer Main Menu appears as shown in Figure 4.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-04.png
|
||||
:scale: 100%
|
||||
:alt: Clear Linux OS Installer
|
||||
|
||||
Figure 4: Clear Linux OS Installer
|
||||
|
||||
The |CL| Installer Main Menu has two tabs: :guilabel:`[R] Required options`
|
||||
and :guilabel:`[A] Advanced options`. Navigate between tabs using the arrow
|
||||
these shortcut keys:
|
||||
|
||||
* :kbd:`Shift+A` for :guilabel:`[A] Advanced options`
|
||||
* :kbd:`Shift+R` for :guilabel:`[R] Required options`
|
||||
|
||||
To meet the minimum requirements, enter your choices in the
|
||||
:guilabel:`Required options`. After confirmation, your selections appear
|
||||
beside the :guilabel:`>>` chevron, below the menu options.
|
||||
|
||||
Navigation
|
||||
**********
|
||||
|
||||
* Select :kbd:`Tab` or :kbd:`Up/Down` arrows to highlight your choice.
|
||||
|
||||
* Select :kbd:`Enter` or :kbd:`Spacebar` to confirm your choice.
|
||||
|
||||
* Select :kbd:`Cancel` or :kbd:`Esc` to cancel your choice.
|
||||
|
||||
Required options
|
||||
****************
|
||||
|
||||
Choose Timezone
|
||||
===============
|
||||
|
||||
#. From the Main Menu, navigate to :guilabel:`Choose Timezone`.
|
||||
`UTC` is the default.
|
||||
|
||||
#. Select :kbd:`Enter`.
|
||||
|
||||
#. In :guilabel:`Select System Timezone`, use :kbd:`Up/Down` arrows
|
||||
navigate to the desired timezone.
|
||||
|
||||
.. todo: User need only select Enter; can only select Confirm with mouse.
|
||||
|
||||
#. Press :kbd:`Enter` to confirm.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-05.png
|
||||
:scale: 100%
|
||||
:alt: Select System Timezone
|
||||
|
||||
Figure 5: Select System Timezone
|
||||
|
||||
Choose Language
|
||||
===============
|
||||
|
||||
#. From the Main Menu, navigate to :guilabel:`Choose Language`.
|
||||
|
||||
#. Select :kbd:`Enter`.
|
||||
|
||||
#. In :guilabel:`Select System Language`, navigate to your desired language.
|
||||
|
||||
#. Press :kbd:`Enter` to confirm.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-06.png
|
||||
:scale: 100%
|
||||
:alt: Select System Language
|
||||
|
||||
Figure 6: Select System Language
|
||||
|
||||
Configure the Keyboard
|
||||
======================
|
||||
|
||||
#. From the Main Menu, select :guilabel:`Configure the Keyboard`.
|
||||
|
||||
#. Select :kbd:`Enter`.
|
||||
|
||||
#. In :guilabel:`Select Keyboard`, navigate to the desired option.
|
||||
|
||||
#. Select :kbd:`Enter` to :kbd:`Confirm`.
|
||||
|
||||
#. Optional: In :guilabel:`Test keyboard`, type text to assure
|
||||
that the keys map to your keyboard.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-07.png
|
||||
:scale: 100%
|
||||
:alt: Select Keyboard menu
|
||||
|
||||
Figure 7: Select Keyboard menu
|
||||
|
||||
Configure Installation Media
|
||||
============================
|
||||
|
||||
#. From the Main Menu, select :guilabel:`Configure Installation Media`.
|
||||
|
||||
#. Choose an installation method:
|
||||
* `Safe Installation`_
|
||||
* `Destructive Installation`_
|
||||
* `Advanced Configuration`_
|
||||
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-08.png
|
||||
:scale: 100%
|
||||
:alt: Select Installation Media
|
||||
|
||||
Figure 8: Select Installation Media
|
||||
|
||||
#. Select :guilabel:`Rescan Media` to show available installation targets.
|
||||
|
||||
.. todo: Revise below section to match the dev-gui-00
|
||||
|
||||
Safe Installation
|
||||
-----------------
|
||||
|
||||
Use this method to safely install |CL| on media with available space, or
|
||||
alongside existing partitions, and accept the `Default partition schema`_.
|
||||
If enough free space exists, safe installation is allowed. See also
|
||||
`Troubleshooting`_ below.
|
||||
|
||||
Destructive Installation
|
||||
------------------------
|
||||
|
||||
Use this method to destroy the contents of the target device, install |CL|
|
||||
on it, and accept the `Default partition schema`_.
|
||||
|
||||
.. note::
|
||||
|
||||
From the :guilabel:`Select Installation Media` menu, select
|
||||
:guilabel:`Enable Encryption` to encrypt the root filesystem for either
|
||||
option above. See also `Disk encryption`_ for more information.
|
||||
|
||||
Advanced Configuration
|
||||
----------------------
|
||||
|
||||
Use this method to manually configure partitions. These must meet
|
||||
`Default partition schema`_. You may also choose `Disk encryption`_ during
|
||||
configuration of each partition.
|
||||
|
||||
.. note::
|
||||
|
||||
`Advanced Configuration` is available in the installer versions 1.2.0 and
|
||||
above.
|
||||
|
||||
#. From :guilabel:`Select Installation Media`, shown in Figure 8 above,
|
||||
select :guilabel:`Advanced Configuration`.
|
||||
|
||||
#. In :guilabel:`Advanced Configuration`, navigate to :file:`/dev/sda`
|
||||
and then press :kbd:`Enter`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-09.png
|
||||
:scale: 100%
|
||||
:alt: Advanced configuration menu
|
||||
|
||||
Figure 9: Advanced configuration menu
|
||||
|
||||
#. Choose a partition method:
|
||||
|
||||
* :guilabel:`Auto Partition` Select this option to accept the
|
||||
`Default partition schema`_.
|
||||
|
||||
#. Navigate to and press :guilabel:`Confirm`.
|
||||
|
||||
#. Continue with installation configuration. Jump to `Telemetry`_.
|
||||
|
||||
* `Manual Partition`_ Continue below.
|
||||
|
||||
Manual Partition
|
||||
----------------
|
||||
|
||||
We provide a simple example below.
|
||||
|
||||
#. Navigate to the unallocated media (e.g.,`/dev/sda`) until highlighted, as
|
||||
shown in Figure 9.
|
||||
|
||||
#. Press :guilabel:`Enter` to edit the partition.
|
||||
|
||||
#. The :guilabel:`Partition Setup` menu appears, shown in Figure 10.
|
||||
|
||||
.. note::
|
||||
|
||||
After adding the first partition, select :guilabel:`Free Space` to add another partition.
|
||||
|
||||
root partition
|
||||
--------------
|
||||
|
||||
#. We configure the `root` partition as shown in Figure 10.
|
||||
Configuration of the `root` partition varies.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-10.png
|
||||
:scale: 100%
|
||||
:alt: root partition
|
||||
|
||||
Figure 10: root partition
|
||||
|
||||
#. Navigate to :guilabel:`Add` and press :guilabel:`Enter`.
|
||||
|
||||
boot partition
|
||||
--------------
|
||||
|
||||
#. We configure the `boot` partition as shown in Figure 11.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-11.png
|
||||
:scale: 100%
|
||||
:alt: boot partition
|
||||
|
||||
Figure 11: boot partition
|
||||
|
||||
#. Navigate to :guilabel:`Add` and press :guilabel:`Enter`.
|
||||
|
||||
swap partition
|
||||
--------------
|
||||
|
||||
#. In the :guilabel:`File System` pulldown menu, select `swap`, and
|
||||
enter a label. We enter the minimum required size (e.g., 256M).
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-12.png
|
||||
:scale: 100%
|
||||
:alt: swap partition
|
||||
|
||||
Figure 12: swap partition
|
||||
|
||||
#. Navigate to :guilabel:`Add` and press :guilabel:`Enter`.
|
||||
|
||||
#. Next, navigate to :guilabel:`Confirm` and press :guilabel:`Enter`,
|
||||
shown in Figure 13.
|
||||
|
||||
Manual partitioning is complete.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-13.png
|
||||
:scale: 100%
|
||||
:alt: Final configuration of disk partitions
|
||||
|
||||
Figure 13: Final configuration of disk partitions
|
||||
|
||||
#. You may skip to the `Telemetry`_ section below.
|
||||
|
||||
Disk encryption
|
||||
===============
|
||||
|
||||
For greater security, disk encryption is supported using LUKS for the
|
||||
any partition except `/boot` on |CL|. To encrypt the root partition, see the
|
||||
example below. Encryption is optional.
|
||||
|
||||
Encryption Passphrase
|
||||
---------------------
|
||||
|
||||
|CL| uses a single passphrase for encrypted partitions. Additional keys may
|
||||
be configured post-installation using the ``cryptsetup`` tool.
|
||||
|
||||
#. Optional: Select :guilabel:`[X] Encrypt` to encrypt the root partition,
|
||||
as shown in Figure 14.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-14.png
|
||||
:scale: 100%
|
||||
:alt: Encrypt partition
|
||||
|
||||
Figure 14: Encrypt partition
|
||||
|
||||
#. The :guilabel:`Encryption Passphrase` dialogue appears.
|
||||
|
||||
.. note::
|
||||
|
||||
Minimum length is 8 characters. Maximum length is 94 characters.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-15.png
|
||||
:scale: 100%
|
||||
:alt: Encryption Passphrase
|
||||
|
||||
Figure 15: Encryption Passphrase
|
||||
|
||||
#. Enter the same passphrase in the first and second field.
|
||||
|
||||
#. Navigate to :guilabel:`Confirm` and press :kbd:`Enter`.
|
||||
|
||||
.. note::
|
||||
|
||||
:guilabel:`Confirm` is only highlighted if passphrases match.
|
||||
|
||||
Telemetry
|
||||
=========
|
||||
|
||||
:ref:`telem-guide` is a |CL| feature that reports failures and crashes to
|
||||
the |CL| development team for improvements. For more detailed information,
|
||||
visit our :ref:`telemetry-about` page.
|
||||
|
||||
Select your desired option on whether to participate in `telemetry`.
|
||||
|
||||
#. In the Main Menu, navigate to :guilabel:`Telemetry` and select
|
||||
:kbd:`Enter`.
|
||||
|
||||
#. Select :kbd:`Tab` to highlight your choice.
|
||||
|
||||
#. Select :kbd:`Enter` to confirm.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-16.png
|
||||
:scale: 100%
|
||||
:alt: Enable Telemetry
|
||||
|
||||
Figure 16: Enable Telemetry
|
||||
|
||||
Recommended options
|
||||
*******************
|
||||
|
||||
After you complete the `Required options`_, we highly recommend completing
|
||||
these selected `Advanced options`_ at minimum:
|
||||
|
||||
* `Manage User`_ Assign a new user with administrative rights
|
||||
* `Assign Hostname`_ Simplify your development environment
|
||||
|
||||
Skip to finish installation
|
||||
===========================
|
||||
|
||||
After selecting values for all :guilabel:`Required options`, you may skip
|
||||
to `Finish installation`_.
|
||||
|
||||
Otherwise, continue below. In the Main Menu, select
|
||||
:guilabel:`Advanced options` for additional configuration.
|
||||
|
||||
Advanced options
|
||||
****************
|
||||
|
||||
Configure Network Interfaces
|
||||
============================
|
||||
|
||||
By default, |CL| is configured to automatically detect the host network
|
||||
interface using DHCP. However, if you want to use a static IP address or if
|
||||
you do not have a DHCP server on your network, follow these instructions to
|
||||
manually configure the network interface. Otherwise, default network
|
||||
interface settings are automatically applied.
|
||||
|
||||
.. note::
|
||||
|
||||
If DHCP is available, no user selection may be required.
|
||||
|
||||
#. Navigate to :guilabel:`Configure Network Interfaces` and
|
||||
select :kbd:`Enter`.
|
||||
|
||||
#. Navigate to the network :guilabel:`interface` you wish to change.
|
||||
|
||||
#. When the desired :guilabel:`interface` is highlighted, select
|
||||
:guilabel:`Enter` to edit.
|
||||
|
||||
.. note:: Multiple network interfaces may appear.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-17.png
|
||||
:scale: 100%
|
||||
:alt: Configure Network Interfaces
|
||||
|
||||
Figure 17: Configure Network Interfaces
|
||||
|
||||
#. Notice :guilabel:`Automatic / dhcp` is selected by default (at bottom).
|
||||
|
||||
Optional: Navigate to the checkbox :guilabel:`Automatic / dhcp` and select
|
||||
:kbd:`Spacebar` to deselect.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-18.png
|
||||
:scale: 100%
|
||||
:alt: Network interface configuration
|
||||
|
||||
Figure 18: Network interface configuration
|
||||
|
||||
#. Navigate to the appropriate fields and assign the desired
|
||||
network configuration.
|
||||
|
||||
#. To save settings, navigate to :guilabel:`Confirm` and select
|
||||
:kbd:`Enter`.
|
||||
|
||||
.. note::
|
||||
|
||||
To revert to previous settings, navigate to the :guilabel:`Cancel`
|
||||
and select :kbd:`Enter`.
|
||||
|
||||
#. Upon confirming network configuration, the :guilabel:`Testing Networking`
|
||||
dialogue appears. Assure the result shows success. If a failure occurs,
|
||||
your changes will not be saved.
|
||||
|
||||
#. Upon confirmation, you are returned to :guilabel:`Network interface`
|
||||
settings.
|
||||
|
||||
#. Navigate to and select :guilabel:`Main Menu`.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Proxy
|
||||
=====
|
||||
|
||||
|CL| automatically attempts to detect proxy settings, as described in
|
||||
`Autoproxy`_. If you need to manually assign proxy settings, follow this
|
||||
instruction.
|
||||
|
||||
#. From the Advanced options menu, navigate to :guilabel:`Proxy`, and
|
||||
select :kbd:`Enter`.
|
||||
|
||||
#. Navigate to the field :guilabel:`HTTPS Proxy`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-19.png
|
||||
:scale: 100%
|
||||
:alt: Configure the network proxy
|
||||
|
||||
Figure 19: Configure the network proxy
|
||||
|
||||
#. Enter the desired proxy address and port using conventional syntax,
|
||||
such as: \http://address:port.
|
||||
|
||||
#. Navigate to :guilabel:`Confirm` and select :kbd:`Enter`.
|
||||
|
||||
#. To revert to previous settings, navigate to :guilabel:`Cancel`
|
||||
and select :guilabel:`Cancel`.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Test Network Settings
|
||||
=====================
|
||||
|
||||
To manually assure network connectivity before installing |CL|,
|
||||
select :guilabel:`Test Network Settings` and select :guilabel:`Enter`.
|
||||
|
||||
A progress bar appears as shown in Figure 20.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-20.png
|
||||
:scale: 100%
|
||||
:alt: Testing Networking dialogue
|
||||
|
||||
Figure 20: Testing Networking dialogue
|
||||
|
||||
.. note::
|
||||
|
||||
Any changes made to network settings are automatically tested
|
||||
during configuration.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Bundle Selection
|
||||
================
|
||||
|
||||
#. On the Advanced menu, select :guilabel:`Bundle Selection`
|
||||
|
||||
#. Navigate to the desired bundle using :kbd:`Tab` or :kbd:`Up/Down` arrows.
|
||||
|
||||
#. Select :kbd:`Spacebar` to select the checkbox for each desired bundle.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-21.png
|
||||
:scale: 100%
|
||||
:alt: Bundle Selection
|
||||
|
||||
Figure 21: Bundle Selection
|
||||
|
||||
#. Optional: To start developing with |CL|, we recommend
|
||||
adding :file:`os-clr-on-clr`.
|
||||
|
||||
#. Navigate to and select :kbd:`Confirm`.
|
||||
|
||||
You are returned to the :guilabel:`Advanced options` menu.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Manage User
|
||||
===========
|
||||
|
||||
Add New User
|
||||
------------
|
||||
|
||||
#. In Advanced Options, select :guilabel:`Manage User`.
|
||||
|
||||
#. Select :guilabel:`Add New User` as shown in Figure 22.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-22.png
|
||||
:scale: 100%
|
||||
:alt: Add New User, User Name
|
||||
|
||||
Figure 22: Add New User
|
||||
|
||||
#. Optional: Enter a :guilabel:`User Name`.
|
||||
|
||||
.. note:
|
||||
|
||||
The User Name must be alphanumeric and can include spaces, commas, or hyphens. Maximum length is 64 characters.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-23.png
|
||||
:scale: 100%
|
||||
:alt: User Name
|
||||
|
||||
Figure 23: User Name
|
||||
|
||||
#. Enter a :guilabel:`Login`.
|
||||
|
||||
.. note::
|
||||
|
||||
The User Login must be alphanumeric and can include hyphens and underscores. Maximum length is 31 characters.
|
||||
|
||||
#. Enter a :guilabel:`Password`.
|
||||
|
||||
.. note:
|
||||
|
||||
Minimum length is 8 characters. Maximum length is 255 characters.
|
||||
|
||||
#. In :guilabel:`Confirm`, enter the same password.
|
||||
|
||||
#. Optional: Navigate to the :guilabel:`Administrative` checkbox and select
|
||||
:kbd:`Spacebar` to assign administrative rights to the user.
|
||||
|
||||
.. note::
|
||||
|
||||
Selecting this option enables sudo privileges for the user.
|
||||
|
||||
#. Select :kbd:`Confirm`.
|
||||
|
||||
.. note::
|
||||
|
||||
If desired, select :guilabel:`Reset` to reset the form.
|
||||
|
||||
#. In :guilabel:`Manage User`, navigate to :guilabel:`Confirm`.
|
||||
|
||||
#. With :guilabel:`Confirm` highlighted, select :kbd:`Enter`.
|
||||
|
||||
Modify / Delete User
|
||||
--------------------
|
||||
|
||||
#. In :guilabel:`Manage User`, navigate to the user you wish
|
||||
to modify until highlighted, as shown in Figure 24.
|
||||
|
||||
#. Select :kbd:`Enter` to modify the user.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-24.png
|
||||
:scale: 100%
|
||||
:alt: Modify User
|
||||
|
||||
Figure 24: Modify User
|
||||
|
||||
#. Modify user details as desired.
|
||||
|
||||
#. Navigate to :kbd:`Confirm` until highlighted.
|
||||
|
||||
.. note::
|
||||
|
||||
Optional: Select :guilabel:`Reset` to rest the form.
|
||||
|
||||
#. Select :guilabel:`Confirm` to save the changes you made.
|
||||
|
||||
#. Optional: In :guilabel:`Modify User`, to delete the user, navigate to
|
||||
the :guilabel:`Delete` button and select :kbd:`Enter`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-25.png
|
||||
:scale: 100%
|
||||
:alt: Delete User
|
||||
|
||||
Figure 25: Delete User
|
||||
|
||||
You are returned to :guilabel:`Manage User`.
|
||||
|
||||
#. Navigate to :kbd:`Confirm` until highlighted.
|
||||
|
||||
#. Select :guilabel:`Enter` to complete :guilabel:`Manage User` options.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Kernel Command Line
|
||||
===================
|
||||
|
||||
For advanced users, |CL| provides the ability to add or remove kernel
|
||||
arguments. If you want to append a new argument, enter the argument here.
|
||||
This argument will be used every time you install or update a
|
||||
new kernel.
|
||||
|
||||
#. In Advanced Options, select :guilabel:`Tab` to highlight
|
||||
:guilabel:`Kernel Command Line`.
|
||||
|
||||
#. Select :kbd:`Enter`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-26.png
|
||||
:scale: 100%
|
||||
:alt: kernel command line
|
||||
|
||||
Figure 26: kernel command line
|
||||
|
||||
#. Choose from the following options.
|
||||
|
||||
* To add arguments, enter the argument in :guilabel:`Add Extra Arguments`.
|
||||
|
||||
* To remove an argument, enter the argument in
|
||||
:guilabel:`Remove Arguments`.
|
||||
|
||||
#. Select :kbd:`Confirm`.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Kernel Selection
|
||||
================
|
||||
|
||||
#. Select a kernel option. By default, the latest kernel release is
|
||||
selected. Native kernel is shown in Figure 27.
|
||||
|
||||
#. To select a different kernel, navigate to it using :guilabel:`Tab`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-27.png
|
||||
:scale: 100%
|
||||
:alt: Kernel selection
|
||||
|
||||
Figure 27: Kernel selection
|
||||
|
||||
#. Select :kbd:`Spacebar` to select the desired option.
|
||||
|
||||
#. Navigate to :kbd:`Confirm` and select :kbd:`Enter`.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Swupd Mirror
|
||||
============
|
||||
|
||||
If you have your own custom mirror of |CL|, you can add its URL.
|
||||
|
||||
#. In Advanced Options, select :guilabel:`Swupd Mirror`.
|
||||
|
||||
#. To add a local swupd mirror, enter a valid URL in :guilabel:`Mirror URL:`
|
||||
|
||||
#. Select :kbd:`Confirm`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-28.png
|
||||
:scale: 100%
|
||||
:alt: Swupd Mirror
|
||||
|
||||
Figure 28: Swupd Mirror
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Assign Hostname
|
||||
===============
|
||||
|
||||
#. In Advanced Options, select :guilabel:`Assign Hostname`.
|
||||
|
||||
#. In :guilabel:`Hostname`, enter the hostname only (excluding the domain).
|
||||
|
||||
.. note::
|
||||
|
||||
Hostname does not allow empty spaces. Hostname must start with an
|
||||
alphanumeric character but may also contain hyphens. Maximum length of
|
||||
63 characters.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-29.png
|
||||
:scale: 100%
|
||||
:alt: Assign Hostname
|
||||
|
||||
Figure 29: Assign Hostname
|
||||
|
||||
#. Navigate to :kbd:`Confirm` until highlighted.
|
||||
|
||||
#. Select :kbd:`Confirm`.
|
||||
|
||||
Optional: Skip to `Finish installation`_.
|
||||
|
||||
Automatic OS Updates
|
||||
====================
|
||||
|
||||
Automatical OS updates are enabled by default. In the rare case that you
|
||||
need to disable automatic software updates, follow the onscreen instructions,
|
||||
shown in Figure 30.
|
||||
|
||||
#. In Advanced Options, select :guilabel:`Automatic OS Updates`.
|
||||
|
||||
#. Select the desired option.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-30.png
|
||||
:scale: 100%
|
||||
:alt: Automatic OS Updates
|
||||
|
||||
Figure 30: Automatic OS Updates
|
||||
|
||||
You are returned to the :guilabel:`Main Menu`.
|
||||
|
||||
Save Configuration Settings
|
||||
===========================
|
||||
|
||||
#. In Advanced Options, select :guilabel:`Save Configuration Settings`.
|
||||
|
||||
#. A dialogue box shows the installation configuration was saved to
|
||||
:file:`clr-installer.yaml`
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-31.png
|
||||
:scale: 100%
|
||||
:alt: Automatic OS Updates
|
||||
|
||||
Figure 31: Automatic OS Updates
|
||||
|
||||
#. Use the :file:`clr-installer.yaml` file to install |CL|, with the same
|
||||
configuration, on multiple targets.
|
||||
|
||||
Finish installation
|
||||
*******************
|
||||
|
||||
#. When you are satisfied with your installation configuration, navigate to
|
||||
:guilabel:`Install` and select :kbd:`Enter`.
|
||||
|
||||
.. figure:: figures/bare-metal-install-server-32.png
|
||||
:scale: 100%
|
||||
:alt: Select Install
|
||||
|
||||
Figure 32: Select Install
|
||||
|
||||
#. Select :guilabel:`reboot`.
|
||||
|
||||
.. note::
|
||||
|
||||
If you do not assign an administrative user, upon rebooting,
|
||||
enter `root` and set the root password immediately.
|
||||
|
||||
#. When the system reboots, remove any installation media present.
|
||||
|
||||
Default partition schema
|
||||
========================
|
||||
|
||||
To add partitions manually, see `Advanced configuration`_ below, and create
|
||||
partitions per requirements in Table 1.
|
||||
|
||||
.. list-table:: **Table 1. Disk Partition Setup**
|
||||
:widths: 33, 33, 33
|
||||
:header-rows: 1
|
||||
|
||||
* - FileSystem
|
||||
- Mount Point
|
||||
- Minimum size
|
||||
* - ``VFAT``
|
||||
- /boot
|
||||
- 150M
|
||||
* - ``swap``
|
||||
-
|
||||
- 256MB
|
||||
* - ``root``
|
||||
- /
|
||||
- *Size depends upon use case/desired bundles.*
|
||||
|
||||
Troubleshooting
|
||||
***************
|
||||
|
||||
For Configure Installation Media
|
||||
================================
|
||||
|
||||
If a warning message appears that no media or space is available after
|
||||
entering :guilabel:`Configure Installation Media`:
|
||||
|
||||
- Verify that target media has enough free space.
|
||||
|
||||
- Confirm the USB is properly connected to and mounted on target media.
|
||||
|
||||
- Review the size of existing partitions on the target media:
|
||||
|
||||
- Linux\* OS: :command:`lsblk -a`
|
||||
- Windows\* OS: :command:`diskpart`, then :command:`list disk`
|
||||
- macOS\* platform: :command:`diskutil list`
|
||||
|
||||
.. _Autoproxy: https://clearlinux.org/features/autoproxy
|
||||
.. _downloads page: https://clearlinux.org/downloads
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 55 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 195 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 69 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 80 KiB |
|
After Width: | Height: | Size: 40 KiB |
@@ -0,0 +1,207 @@
|
||||
.. _bootable-usb:
|
||||
|
||||
Create a bootable USB drive
|
||||
###########################
|
||||
|
||||
Instructions to create a |CL-ATTR| USB drive vary depending on your operating
|
||||
system. Follow the instructions applicable to your system:
|
||||
|
||||
* :ref:`bootable-usb-linux`
|
||||
* :ref:`bootable-usb-mac`
|
||||
* :ref:`bootable-usb-windows`
|
||||
|
||||
Prerequisites
|
||||
*************
|
||||
|
||||
* Use an **8GB** or larger USB drive.
|
||||
* `Download`_ the |CL| live boot image or interactive installer image.
|
||||
|
||||
.. _bootable-usb-linux:
|
||||
|
||||
Create a bootable USB drive on Linux\*
|
||||
**************************************
|
||||
|
||||
Make sure you have have completed all `Prerequisites`_.
|
||||
|
||||
Before burning the image onto your USB drive,
|
||||
:ref:`verify and decompress your image <verify-linux>`.
|
||||
|
||||
Burn the |CL| image onto a USB drive
|
||||
====================================
|
||||
|
||||
.. caution::
|
||||
|
||||
|CAUTION-BACKUP-USB|
|
||||
|
||||
#. Open a terminal emulator and get root privilege.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo -s
|
||||
|
||||
#. Go to the directory with the decompressed image.
|
||||
|
||||
#. Plug in the USB drive.
|
||||
|
||||
#. Identify the USB drive using the :command:`lsblk` command. This shows all
|
||||
drives attached to the system, including the primary hard disk. In the
|
||||
example output below, there are 4 drives
|
||||
(`/dev/sda`, `/dev/sdb`, `/dev/sdc`, and `/dev/sdd`) attached, where
|
||||
`/dev/sda` is primary drive. The remaining are three USB drives. The output
|
||||
also shows the mounted partitions (under the `MOUNTPOINT` column) for each
|
||||
drive.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
lsblk
|
||||
|
||||
Example output:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
|
||||
sdd 8:48 1 15G 0 disk
|
||||
├─sdd2 8:50 1 5G 0 part /run/media/user1/960c184f-3bb7-42b7-bcaf-0c1282
|
||||
├─sdd3 8:51 1 8G 0 part /run/media/user1/704f3382-b26d-4f34-af1b-cb9aab
|
||||
└─sdd1 8:49 1 2G 0 part
|
||||
sdb 8:16 1 14.8G 0 disk
|
||||
└─sdb1 8:17 1 14.8G 0 part /run/media/user1/PATRIOT_USB
|
||||
sdc 8:32 1 7.3G 0 disk
|
||||
└─sdc1 8:33 1 7.3G 0 part /run/media/user1/LINUX MINT
|
||||
sda 8:0 0 335.4G 0 disk
|
||||
├─sda4 8:4 0 28G 0 part
|
||||
├─sda2 8:2 0 3.7G 0 part [SWAP]
|
||||
├─sda7 8:7 0 6G 0 part /home
|
||||
├─sda5 8:5 0 1G 0 part /boot
|
||||
├─sda3 8:3 0 954M 0 part /boot/efi
|
||||
├─sda1 8:1 0 28G 0 part
|
||||
├─sda8 8:8 0 30G 0 part /
|
||||
└─sda6 8:6 0 7.9G 0 part [SWAP]
|
||||
|
||||
#. You must unmount a USB drive before burning an image onto it. Note that
|
||||
some Linux distros automatically mount a USB drive when it is plugged in.
|
||||
Unmount a USB drive with the :command:`umount` command followed by the device
|
||||
identifier/partition. For example:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
umount /dev/sdd2
|
||||
umount /dev/sdd3
|
||||
|
||||
#. Burn the image onto the USB drive. The example below burns an uncompressed
|
||||
image onto `<your USB device>`:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
dd if=./clear-[version number]-[image type] of=<your USB device> oflag=sync bs=4M status=progress
|
||||
|
||||
.. caution::
|
||||
|
||||
|CAUTION-UNMOUNT-USB-PARTITIONS|
|
||||
|
||||
.. _bootable-usb-mac:
|
||||
|
||||
Create a bootable USB drive on macOS\*
|
||||
**************************************
|
||||
|
||||
Make sure you have have completed all `Prerequisites`_.
|
||||
|
||||
Before burning the image onto your USB drive,
|
||||
:ref:`verify and decompress your image <verify-mac>`.
|
||||
|
||||
Burn the |CL| image onto a USB drive
|
||||
====================================
|
||||
|
||||
.. caution::
|
||||
|
||||
|CAUTION-BACKUP-USB|
|
||||
|
||||
#. Launch the Terminal app.
|
||||
|
||||
#. Go to the directory with the decompressed image.
|
||||
|
||||
#. Plug in a USB drive and get its identifier:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
diskutil list
|
||||
|
||||
This will list available disks and their partitions, as shown in Figure 1.
|
||||
|
||||
.. figure:: figures/bootable-usb-mac-01.png
|
||||
:scale: 100 %
|
||||
:alt: Get USB drive identifier
|
||||
|
||||
Figure 1: macOS - Get USB drive identifier
|
||||
|
||||
#. Unmount the USB drive identified in the previous step. For example:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
diskutil umountDisk /dev/disk2
|
||||
|
||||
#. Burn the image onto the drive using the :command:`dd` command.
|
||||
The example below burns an uncompressed image onto `<your USB device>`:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo dd if=./clear-[version number]-[image type] of=<your USB device> bs=4m
|
||||
|
||||
To speed up the imaging process, add an ‘r’ in front of the disk identifier.
|
||||
For example `/dev/rdisk2`.
|
||||
|
||||
Press :kbd:`<CTL>-T` to check imaging progress.
|
||||
|
||||
#. Eject the USB drive.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
diskutil eject /dev/disk2
|
||||
|
||||
.. _bootable-usb-windows:
|
||||
|
||||
Create a bootable USB drive on Windows\*
|
||||
****************************************
|
||||
|
||||
Make sure you have have completed all `Prerequisites`_.
|
||||
|
||||
Before burning the image onto your USB drive,
|
||||
:ref:`verify and decompress your image <verify-windows>`.
|
||||
|
||||
Burn the |CL| image onto a USB drive
|
||||
====================================
|
||||
|
||||
.. caution::
|
||||
|
||||
|CAUTION-BACKUP-USB|
|
||||
|
||||
#. Download the `Rufus`_ utility to burn the image onto a USB drive.
|
||||
We use Rufus 3.5 here. **Only use the latest version of Rufus**.
|
||||
|
||||
#. Plug in the USB drive and open Rufus.
|
||||
|
||||
#. Under `Boot selection`, click the :guilabel:`SELECT` button.
|
||||
|
||||
#. Find and select the previously extracted |CL| image file.
|
||||
|
||||
#. Click the :guilabel:`START` button. See Figure 2.
|
||||
|
||||
.. figure:: figures/bootable-usb-windows-02.png
|
||||
:scale: 80 %
|
||||
:alt: Rufus utility
|
||||
|
||||
Figure 2: Rufus utility
|
||||
|
||||
#. When the dialogue appears, select
|
||||
:guilabel:`Write in ISO image mode (Recommended)`. See Figure 3.
|
||||
|
||||
.. figure:: figures/bootable-usb-windows-03.png
|
||||
:scale: 80 %
|
||||
:alt: ISOHybrid image detected
|
||||
|
||||
Figure 3: ISOHybrid image detected
|
||||
|
||||
#. Select the Windows taskbar menu for USB and select eject.
|
||||
|
||||
.. _Rufus: https://rufus.ie/
|
||||
.. _Download: https://clearlinux.org/downloads
|
||||
|
After Width: | Height: | Size: 116 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 44 KiB |
@@ -0,0 +1,61 @@
|
||||
.. _compatibility-check:
|
||||
|
||||
Check processor and EFI firmware compatibility
|
||||
##############################################
|
||||
|
||||
On a system that is currently running a Linux\* operating system, follow the
|
||||
instructions below to determine if your system's processor and EFI firmware is
|
||||
capable of running |CL-ATTR|. Otherwise,
|
||||
:ref:`bare-metal-install-desktop` and then perform the steps
|
||||
below.
|
||||
|
||||
.. note::
|
||||
This does not check other system components (for example: storage and
|
||||
graphics) for compatibility with |CL|.
|
||||
|
||||
#. Download the `clear-linux-check-config.sh`_ file.
|
||||
|
||||
If a browser is not available, use:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
curl -O https://cdn.download.clearlinux.org/current/clear-linux-check-config.sh
|
||||
|
||||
#. Make the script executable.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
chmod +x clear-linux-check-config.sh
|
||||
|
||||
#. Run the script.
|
||||
|
||||
#. Check to see if the host's processor and EFI firmware is capable of
|
||||
running |CL|.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
./clear-linux-check-config.sh host
|
||||
|
||||
#. Check to see if the host is capable of running |CL| in a container.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
./clear-linux-check-config.sh container
|
||||
|
||||
The script will print a list of test results similar to the output below.
|
||||
All items should return a `SUCCESS` status. This example indicates the
|
||||
host's processor and EFI firmware support running |CL|.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
Checking if host is capable of running Clear Linux* OS
|
||||
|
||||
SUCCESS: 64-bit CPU (lm)
|
||||
SUCCESS: Supplemental Streaming SIMD Extensions 3 (ssse3)
|
||||
SUCCESS: Streaming SIMD Extension v4.1 (sse4_1)
|
||||
SUCCESS: Streaming SIMD Extensions v4.2 (sse4_2)
|
||||
SUCCESS: Advanced Encryption Standard instruction set (aes)
|
||||
SUCCESS: Carry-less Multiplication extensions (pclmulqdq)
|
||||
SUCCESS: EFI Firmware
|
||||
|
||||
.. _clear-linux-check-config.sh: https://cdn.download.clearlinux.org/current/clear-linux-check-config.sh
|
||||
@@ -0,0 +1,29 @@
|
||||
.. _get-started:
|
||||
|
||||
Get started
|
||||
###########
|
||||
|
||||
The Get Started section will get you up and running fast with |CL-ATTR|. Use
|
||||
these step-by-step instructions to guide you through the installing |CL|
|
||||
from a live desktop or to a virtual machine.
|
||||
|
||||
Pre-install
|
||||
***********
|
||||
|
||||
* :ref:`system-requirements`
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
compatibility-check
|
||||
bootable-usb/bootable-usb
|
||||
|
||||
Install |CL|
|
||||
************
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
bare-metal-install-desktop/bare-metal-install-desktop
|
||||
bare-metal-install-server/bare-metal-install-server
|
||||
virtual-machine-install/virtual-machine-install
|
||||
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 7.7 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 9.8 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 47 KiB |