LiveUSB UEFI bootable with toram and nomodeset

Setting up LiveUSB

I had really mysterious things, when tried to boot Xubuntu Live USB on my ASUS ROG GL552VW. Graphic card: Nvidia 960m
After booting Live USB and trying Xubuntu without installation, it just freezes.

So here is instructions that will help, if you have a same problem.
(Notice, that not all instructions here is required for your pc build, so be ready to try all)
For my build it works with that set up.

1. Download Xubuntu ISO file.

2. Format USB to fat32

3.1 Use UNetbootin to install Xubuntu ISO file to USB
3.2 Additional!
Space used to preserve files across reboots” to 1MB min – 4GB (4096MB) max.

4.Take secure boot and fast boot off in UEFI/BIOS!!!

5. Make sure that your Live USB is booting before other OS.
My boot order: Live USB -> Linux Mint -> Windows 10
OR
Simply press “ESC”, F9 or F12 and choose your usb.

6.1 Boot Live USB and choose “Try Xubuntu without installing” then press “e” button.
6.2 Edit file with adding after “quiet splashnomodeset (to turn off the graphics) and toram(so that you can use Xubuntu without USB after booting).

quiet splash nomodeset toram ---

6.3 On some computers LiveUSB works fine without adding “nomodeset“!!!

6.4 Because after adding “nomodeset” my screen resolution droped to 800×600, I started finding other solution.

Here is some of them that i found:

nouveau.modeset=0
OR
nomodeset grub_gfxmode=1920x1080x24
OR
nomodeset grub_gfxmode=1920x1080x32
OR
nomodeset rdblacklist=nouveau

So i tried nouveau.modeset=0 and it worked!

quiet splash nouveau.modeset=0 toram ---

I hope you solved your problem. ūüôā

Additional Information

If you desided install Xubuntu, you can permanently set boot options just by adding “nomodeset” and/or “toram” in grub file:

sudoedit /etc/default/grub

Add changes in “GRUB_CMDLINE_LINUX_DEFAULT” after “quiet splash

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset toram"
GRUB_CMDLINE_LINUX=""

In same place you can set up screen resolution removing “#” and changing:

#GRUB_GFXMODE=640x480

to

GRUB_GFXMODE=1920x1080

Then update grub:

sudo update-grub

Homework 3. Versionhallinta

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

a) Opiskele yllä aikataulussa olevat artikkelit. Noissa artikkeleissa opetetaan ne asiat, joilla läksyt saa tehtyä. Tätä a-kohdan lukutehtävää ei tarvitse raportoida. Luettava materiaali on kunkin tapaamiskerran kohdalla.

b) MarkDown. Tee t√§m√§n teht√§v√§n raportti MarkDownina. Helpointa on tehd√§ raportti samaan GitHub-varastoon kuin Salt-modulit. Tiedostoon .md-p√§√§te. Tyhj√§ rivi tekee kappalejaon, risuaita ‚Äė#‚Äô tekee otsikon, sisennys merkitsee koodinp√§tk√§n.

c) Laita /srv/salt/ gittiin. Tee uusi moduli. Kloonaa varastosi toiselle koneelle (tai poista /srv/salt ja palauta se kloonaamalla) ja jatka sillä.

Aluksi ladataan git:iä komennolla:

$ sudo apt-get install git

Asennuksen jälkeen päästän heti käyttää git:iä ja aluksi annetaan ohjelmalle meidän tiedot:

$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@mail.com"

Yleiset komennot, jotka me tarvitaan git:ssä:

Luodaan uusi kanssio sekä .git kansion samalla:

git init dirname

Esim:
/srv $ sudo git init salt
Initialized empty Git repository in /srv/salt/.git/

Ensin tehdän muutos meidän uuteen kansioon, esim lisätään sinne hello.txt tiedoston ja lisätään sen komennolla:

git add .

Seuraavaksi varmistetaan muutoksia, sekä kerrotaan lyhyellä viestillä mitä muutoksia oli tehty:

git commit

Jos meillä olisi valmiiksi jo tehty varasto esim GitHub:lla ja me halutaan siirtää sitä meidän koneelle niin tarvitaan yllä olevien komentojen lisääksi kolme lisää.

Katsotaan ensin komentojen järjestys:

git clone 'linkki' # kopioi varaston suoraan koneelle
git add .
git commit
git pull
git push

Nyt aion kloonata minun valmiiksi tehty salt kansion GitHub:sta:
https://github.com/KonstantinGurin/salt

Eli nyt voidaan vaan lisätä ja/tai muokata tiedostoja.
Komennoilla git add . ja git commit tehdään muutoksia ja komennoilla git pull ja git push lähetetään niitä takaisin GitHub:in.

d) N√§yt√§ omalla salt-varastollasi esimerkit komennoista ‚Äėgit log‚Äô, ‚Äėgit diff‚Äô ja ‚Äėgit blame‚Äô. Selit√§ tulokset.

Komennolla git log voi seurata mitä muutoksia oli tehty, kuka ne muutokset teki ja monelta se oli. Sekä täälä löytyy se info mitä me laitetaan git commit komennon aikana.

Git diff komento kertoo mitä eroa commiteillä on:

eli tässä näkee, että oli lisätty testfile.txt sekä näkyy sen sisältö.

Git blame näyttää tiedoston sisällön, aika milloin muokkaus oli tehty, kuka sen teki ja oliko tehty committi vai ei.

e) Tee tyhm√§ muutos gittiin, √§l√§ tee commit:tia. Tuhoa huonot muutokset ‚Äėgit reset ‚Äďhard‚Äô. Huomaa, ett√§ t√§ss√§ toiminnossa ei ole peruutusnappia.

Poistetaan top.sls tiedoston “vahingossa”.
Komennolla palautetaan tiedosto:

$ git reset --hard

f) Tee uusi salt-moduli. Voit asentaa ja konfiguroida mink√§ vain uuden ohjelman: demonin, ty√∂p√∂yt√§ohjelman tai komentokehotteesta toimivan ohjelman. K√§yt√§ tarvittaessa ‚Äėfind -printf ‚Äú%T+ %p\n‚ÄĚ|sort‚Äô l√∂yt√§√§ksesi uudet asetustiedostot.

Päätin asentaa pelin Wesnoth saltin avulla:

Tässä on init.sls tiedosto missä on listattu kaikki tarvittavat paketit (helpompi kyllä olisi asentaa vaan metapakettina, mutta halusin kokeilla tällä tavalla)

Komennolla asennetaan peli k√§ytt√§j√§lle “testslave”:

$ sudo salt "testslave" state.apply wesnoth

Homework 2. Package-file-server

H2 Tiistai ryhmä

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

b) Laita käyttäjien kotisivut toimimaan Apachella.

Eli halutaan automatisoida etusivujen luomiseen apache2:lla.

Aluksi luodaan kansioon /srv/salt/ uuden kansion. Annetaan sen nimeksi apache2:

/srv/salt $ sudo mkdir apache2

Seuraavaksi luodaan init.sls tiedoston, mihin kirjoitetaan meidän ohjeet:

Ja luodaan uusi index.html joka vaihtaa apache2 default etusivun:

Tarkempi init.sls tiedostosta ja sen sisällöstä:
Se on tiedosto joka käynistää vuorotellen kaikki antamat ohjeet.

Asentaa apache2 paketti:

apache2:
  pkg.installed

Vaihtaa apache2 etusivun uudella etusivulla:

/var/www/html/index.html:
  file.managed:
    - source: salt://apache2/index.html

/var/www/html/index.html:
Tiedosto mitä vaihdetan ja sen paikka.

file.managed:
Manage a given file, this function allows for a file to be downloaded from the salt master and potentially run through a templating system.

Eli tällä komennolla haetaan tiedoston.

– source:
The source file to download to the minion, this source file can be hosted on either the salt master server (salt://), the salt minion local file system (/), or on an HTTP or FTP server (http(s)://, ftp://).

Ja tällä komennolla merkataan mistä.

Linkataan tiedostot userdir.conf ja userdir.load ja siirretään niitä kansiosta mods-available kansioon mods-enabled eli otetaan käyttöön userdir:

/etc/apache2/mods-enabled/userdir.conf:
  file.symlink:
    - target: ../mods-available/userdir.conf

/etc/apache2/mods-enabled/userdir.load:
  file.symlink:
    - target: ../mods-available/userdir.load

Tekee samaa asia kuin komento:

$ sudo a2enmod userdir

file.symlink:
Create a symbolic link.

– target:
The location that the symlink points to.

Tarkistetaan oliko tehty muutoksia tiedostoihin ja päivitetään palvelu (sama kuin sudo systemctl restart apache2) tarvittaessa:

apache2service:
  service.running:
    - name: apache2
    - watch:
      - file: /etc/apache2/mods-enabled/userdir.conf
      - file: /etc/apache2/mods-enabled/userdir.load

service.running:
Ensure that the service is running.
Varmistaa, että palvelu on käynissä.

– watch:
watch can be used with service.running to restart a service when another state changes.

Ja tässä kuvat onnistuneesta asennuksesta:

Etusivu on muuttunut ja toimii:

Ja käyttäjän testslave etusivu:

c) Laita PHP toimimaan käyttäjien kotisivuilla. (Huomaa, että PHP toimii oletuksena kaikkialla muualla kuin käyttäjien public_html-kotisivuilla.)

init.sls tiedosto:

libapache2-mod-php:
  pkg.installed

/etc/apache2/mods-available/php7.2.conf:
  file.managed:
    - source: salt://php/php7.2.conf

phprestart:
  service.running:
    - name: apache2
    - watch:
      - file: /etc/apache2/mods-available/php7.2.conf

Muokattu php7.2.conf tiedosto:

<FilesMatch ".+\.ph(ar|p|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
# Deny access to raw php sources by default
# To re-enable it's recommended to enable access to the files
# only in specific virtual host or directory
Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(ar|p|ps|tml)$">
Require all denied
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.

#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
#</IfModule>

d) Rakenna tila (state), joka tekee Apachelle uuden nimipohjaisen virtuaalipalvelimen (name based virtual hosting). Voit simuloida nimipalvelun toimintaa hosts-tiedoston avulla. Jos et ole koskaan tehnyt nimipohjaisia virtuaalipalvelimia Apachelle, katso ohje (Name Based Virtual Hosts on Apache) tee tehtävä niin pitkälle kuin osaat.

e) Tee tila (state), joka laittaa esimerkkikotisivun uusille k√§ytt√§jille. Voit laittaa esimerkkikotisivu /etc/skel/:iin, niin se tulee automaattisesti ‚Äėadduser tero‚Äô komennolla k√§ytt√§ji√§ luodessa.

f) Eri asetukset. Tee Package-File-Service tilalla eri asetuksia kuin ne, mitä tehtiin tunnilla; ja eri kuin mitä teit/teet h2 muissa kohdissa. Voit muuttaa jotain toista asetusta samoista demoneista tai valita kokonaan eri demonit.

Homework 1. Salt Master and Slave

Tehtävänanto on kopioitu Tero Karvisen sivulta:
http://terokarvinen.com/2018/aikataulu–palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to–loppukevat-2018-5p

a) Lue virallisesta Salt Getting Started Guide -kirjasta luvut Understanding SaltStack (noin 8 alasivua) ja SaltStack Fundamentals (6 alasivua, ei tarvitse asentaa demoympäristöä) ja SaltStack Configuration Management: Functions (1 alasivu). (Tätä lukutehtävää ei tarvitse raportoida).

b) Silmäile Laineen 2017 varastossa olevia salt -asetuksia. (Tätä lukutehtävää ei tarvitse raportoida).

c) Asenna Salt Master ja Slave pull-arkkitehtuurilla (eli master on server). Voit laittaa herran ja orjan myös samalle koneelle. Kokeile suorittamalla salt:illa komentoja etänä.

Aluksi asennetaan Salt Master.
Olen asentanut sen omalle koneelle pääkäyttäjälle.

$ sudo apt-get install salt-master

Salt:in kanssio löytyy:

$ cd /etc/salt/

Tarkistetaan oma IP-osoite komennolla:

$ hostname -I

Myöhemmin tarvitaan Master IP siihen, että pystytään yhdistää meidän Slave:in.

Että voidaan testata samalla koneella, luodaan toinen käyttäjä:

$ sudo adduser myslave

ja vaihdetaan käyttäjien keskenään komennolla:

$ su - myslave

tai otetaan SSH yhteys:

$ ssh myslave@localhost

Asennetaan salt-slave:

$ sudo apt-get install salt-minion

Muokataan minion tiedoston ja lisätään sinne Master IP ja Slave ID:

sudoedit /etc/salt/minion
master: 123.123.123.123
id: myslave

ja otetaan muutokset voimaan uudelleen käynistämällä demoni:

$ sudo systemctl restart salt-minion.servic

Otetaan slave avain vastaan master käyttäjällä:

Tarkistetaan, että toimii kysymällä kuka myslave on:

Komennot toimii.
Samat toiminnot suoritetaan, kun otetaan yhteys eri koneista.
Tämä tehtävä oli siis tehty yhdellä koneella.

e) Kerää laitetietoja koneilta saltin grains-mekanismilla.

Kerää tietoja meidän slave koneesta:

$ sudo salt 'myslave' grains.items

Esimerkki tiedot mitkä voi saada:

ITEM:
BIOS version and release date
CPU_flags
CPU_model and architecture
GPU
Group name and host
ID: myslave
ip_interfaces, ipv4, ipv6
kernel name and version
machine_id
manufacturer
OS name, family, architecture, version
serialnumber
server_id
virtual: physical or virtual

Nyt voidaan k√§ytt√§√§ ylh√§ll√§ olevia ‘item‘ kommenteja, jos halutaan l√∂yt√§√§ tietty tieto meid√§n slave:sta.

Tarkistaa onko myslave niminen slave virtuaali kone vai fyysinen kone:

$ sudo salt 'myslave' grains.item virtual
myslave:
    ----------
    virtual:
        physical

tai vaikka tarkistetaan mikä distro meidän orjalla on asennettu:

$ sudo salt 'myslave' grains.item lsb_distrib_description
myslave:
    ----------
    lsb_distrib_description:
        Linux Mint 19 Tara

f) Oikeaa elämää. Säädä Saltilla jotain pientä, mutta oikeaa esimerkiksi omalta koneeltasi tai omalta virtuaalipalvelimelta. (Kannattaa kokeilla Saltia oikeassa elämässä, mutta jos se ei onnistu, rakenna jotain oikeaa konettasi vastaava virtuaaliympäristö ja tee asetus siinä).

Lähetetään meidän slave:lle teksti tiedosto.

Ensin luodaan kansio mihin laitetaan kaikki ohjeet salt:lle:

mkdir -p
no error if existing, make parent directories as needed

$ sudo mkdir -p /srv/salt/

ja erikseen kansio hello mihin laitetaan meidän .sls ohje:

/srv/salt $ sudo mkdir hello

luodaan .txt tiedosto ja kirjoitetaan siihen meidän tervehdys:

/srv/salt/hello $ sudoedit hello.txt

/srv/salt/hello $ cat helloslave.txt
Hello my slave :)

kansiossa /srv/salt/ luodaan .sls tiedosto ja annetaan ohjeet mistä haetaan meidän tervehdys tiedosto:

/srv/salt $ sudoedit hello.sls

/tmp/helloslave.txt:
  file.managed:
    - source: salt://hello/helloslave.txt

Nyt voidaan l√§hett√§√§ ‘myslave’:lle tiedoston:

$ sudo salt 'myslave' state.apply hello

ja tarkistetaan onko tiedosto saapunut myslave:lle:

myslave@s174rd-GL552VW:~$ cd /tmp/
myslave@s174rd-GL552VW:/tmp$ ls
helloslave.txt

Luodaan top.sls tiedosto, että slave:it ottaavat automaattisesti ohjeet käyttöön:

/srv/salt $ sudoedit top.sls

base:
  'myslave':
    - hello

jos halutaan ottaa ohjeet heti:

$ sudo salt 'myslave' state.highstate

Asennetaan vielä whois meidän slave:lle.
Aluksi luodaan uuden kasion ja kaksi uutta tiedostoa:

$ sudo mkdir /srv/salt/common

siihen luodaan tiedosto joka hae tietoja meidän toisesta tiedostosta packages.sls:

$ sudoedit init.sls

include:
  - common.packages

ja toinen:

$ sudoedit packages.sls

common_packages:
  pkg.installed:
    - pkgs:
      - whois

ja se on valmis! Voidaan asentaa komennolla:

sudo salt 'myslave' state.apply /common/init