Näytä kirjoitukset

Tässä osiossa voit tarkastella kaikkia tämän jäsenen viestejä. Huomaa, että näet viestit vain niiltä alueilta, joihin sinulla on pääsy.


Aiheet - petteriIII

Sivuja: [1] 2 3 4
1
Kuormitus on käsittääkseeni kaksikertaa suurempaa kuin foorumin kultaisena vuotena 2014 parhaimmillaan ja tällähetkellä 8 kertaa suurempaa kuin normaalisti - alkoi kasvamaan eilen ja kasvaa kokoajan. Yksi paikka josta sen käyttäjätkin näkevät helposti on päiväkohtaisten tilastojen kohta osumat.  Osumista voi väittää etteivät ne kerro mistään mitään mutta kyllä ne kertoo jotakin.

Saattaahan kuormitus olla mitä vain ja loppua yhtä nopeasti kun alkoikin, mutta silti olisi kiva tietää mitä se on?

2
Yleistä keskustelua / Versiopäivitys
« : 27.04.16 - klo:18.02 »
Systeri päivitti koneensa uuteen versioon eikä kone senjälkeen enää bootannut. Kasasin uuden koneen tilalle mutta koska emolevy oli viitisen vuotta sitten käytöstä poistettu ja törkeän hidas niin koetin eikö siihen boottaamattomaan saisi elämänliekkiä. "Verta, hikeä ja kyyneleitä myöhemmin" selvisi että itse kone toimi mutta näyttö ei toiminut: näyttö näytti biosin ja grubin, mutta ei näyttänyt Ubuntua; näytön kun vaihtoi niin kaikki toimi.
- ehkä näytön grafiikkapiiri oli hajonnut?
- enpä tiedäkään: bios on tyyppiä EFI-bios. Eikö se ole graafinen?

3
Lasken BC:n kuuluvan BASH:iin.

Taas kertaalleen kertoman laskemiseen tuli lisää nopeutta, tälläkertaa noin kolminkertaisesti ja nyt asia on jo oman ketjun arvoinen. Varmaankin koodi on jonkun "maailman suur-virtuoosin" tuntema, mutta minulle tämä on melkein täysin uutta vaikka sen itse teinkin "yritä-erehdy-yritä uudelleen" menetelmällä. Koodi on:
Koodia: [Valitse]
echo 'c=1;b=1;n=777;while(n--)b=(b*(n+1));b*c' | bc
- siis luku josta kertoma lasketaan on 777 . c ja b ovat vain apumuuttujia.
- en osaa C:tä. Voisiko joku C-virtuoosi kertoa onko tuo C:tä ? Asia on merkityksellinen sillä BC tottelee tuota koodaustapaa ja sillä voi laskea erittäin nopeasti mitävaan - mutta olisi kiva tuntea säännöt.

4
Yleistä keskustelua / Virus- yms.-turva
« : 21.03.16 - klo:17.27 »
Asiasta on kirjoitettu niin kauan sitten että tein uuden ketjun. En osaa muuta kuin kysyä: mitä kannattaa tehdä? Hankin veneen, maalaan PC:n vihreäksi ja käytän sitä ankkurina?

5
Yhdistämisilmoituksessa lukee: yhdistetty verkkoon "(ei mitään)". Kuinka saa PC.n käydessä tietää toiminko koti-reitittimeni kanssa ?

6
Laitealue / Kovalevyt
« : 03.11.15 - klo:17.07 »
En ole koskaan välittänyt siitä kun "tunnetuimmissakin" verkkokaupoissa mainostetaan kovlevyn olevan Windows yhteensopiva, vaan ostanut ja laittanut Ubuntuuni eikä koskaan ole ollut minkäänsortin vaikeutta. Ja nyt on alkanut esiintyä huomautuksia että OSX toimii muuten mutta ohjelmat ei - ihan niinkuin vihjattaisiin ettei Linuxilla toimi. Onko edes teoriassa mahdollista että kovalevy toimii vain Windowsilla mikäli se käyttää standardi-liitäntöjä?

7
Taas kertaalleen petyin käyttöjärjestelmän time-käskyyn kun sen tarkkuus on huono ja sen arvot vaihtelevat - ja kyllä tajuan sen välttävän esittämästä tarkkoja kestoaikoja kun tulokset jokatapauksessa vaihtelevat kerrasta toiseen. Tämä skripti esittää tarkkoja lukemia ja jolla on vielä  suurempi resoluutio. Tein sen siksi että saisin luotettavasti mitattua kuinka BASH:in kiihdytys toimii. Käytännön esimerkki: tiedätkö mitä käskyjä kannattaa käyttää jotta skriptistä tulisi nopea? Vaikka nopeus ei sinänsä merkitsekään mitään niin turha tuhlaus särkee sielua. Enää ei tarvitse  pähkäillä kunpi on nopeampi: echo * vai: ls /home/$USER kun sen voi tällä skriptillä mitata tarkkemmin kuin haluaakaan:
- echo *   kestää minun koneessani .36ms
- ls /home/$user kestää minun koneessani 1.15ms

- monirivinen skriptikin on käsky. Kyllä se tuonne mahtuu.

Tottakai täytyy ottaa huomioon että tämä skriptin tulokset ovat vain tilastollisesti oikeita. Muuten: Linuxilla keskipoikkeamat sun muut saisi helposti laskettua ja kenties ne tarjoisivat merkityksellistä tietoa.
 
Skriptiä ole vielä hiottu ollenkaan - siinä on vielä ilmanmuuta vielä paranneltavaa.  Jos viitsii.

- repoissa on varmaankin parempiakin ratkaisuja kuin tämä. Mutta miksi käyttää niitä - viihdykettähän tämmöisten tekeminen on eikä käskyn suoritusajan mittaamisessa ole mieltä  -  eiköhän ne mittaajat ole muualla.
Koodia: [Valitse]
#!/bin/bash
# skripti on tarkoitettu nopeiden ilmiöiden luotettavaan mittaamiseen: siis alta sekunnin kestävien. Mutta kyllä tämä toimii vaikka tunnin kestävillekin.
# tämän skriptin toiminta-aika on tajuttoman pitkä: 10 sekunnista ylöspäin ja jo yhden sekunnin kestävän käskyn suoritusajan mittaaminen kestää noin 16 minuutia. Mutta tällä
# skriptillä saa mitattua asioita joita ei muuten saa mitattua: esimerkiksi mikä on tarkka nopeusero käskyillä: echo * ja: ls /home/$USER .
# Mittaustarkkuus on luokkaa .003 millisekuntia. Ota kuitenkin huomioon että tämä on tilastollinen mittaus.
# Pitää heti kertoa että sleep 1 on tosiaankin arvoltaan luokkaa 1002.8 ms
Alkuhetki=$(date +%s.%N)
for (( n=1; n<=1000; n++ )); do 
  sleep .01 # tämä käsky vakavoittaa mittaustuloksia. Tämä arvo otetaan laskuissa huomioon. Mittausaika kylläkin kasvaa. Riviä ei saa poistaa.
  # ajoitettavat käskyt kirjoitetaan seuraaville riveille; jos esimerkiksi vertaillaan joitain käskyjä niin toinen kommentoidaan kun toisen kommentti poistetaan. Riviä ei saa poistaa
  # echo *
  ls /home/$USER
  # ajoitettavien käskyjen täytyy olla kirjoitetut ennen tätä riviä. Riviä ei saa poistaa
done
Loppuhetki=$(date +%s.%N)
Kokonaisaika=$(echo $Loppuhetki-$Alkuhetki-10.596 | bc)
echo 'kulunut aika millisekunneissa 1000 mittauksen keskiarvona= '$Kokonaisaika


8
Onko kenelläkään kokemuksia repoissa olevasta BASH-kääntäjästä nimeltään shc ? Mitä koetin niin toimiihan se, mutta eihän äkkiseltään mitään varmaa voi sanoa.

Shc käänsi vaikeatkin skriptit todella nopeasti - ja käännökset tuntuivat toimivan. En kylläkään tiedä onko kääntäjälle tarvetta sillä oikeinkasatut skriptit ovat sinälläänkin tarpeeksi nopeita. Ja koodin kätkeminen binäärimuotoon on sairasta mikäli kätkemisen syy on pelkästään kätkeminen.

Tuosta nopeutuksesta muuten: kun alkaa soveltamaan kunnolla sed, awk, bc ... niin skriptit nopeutuu yli kymmenkertaisesti. Ja silti kahdella verkkosivulla on osoitettu että awk, sed ... hidastavat; BASH oli satakunta kertaa nopeampi kuin ne - mutta oikean koodin löytäminen edellyttää skriptaajalta täydellistä asennemuutosta.

Tutkin enemmän tuota väitettä että awk, sed ja grep hidastavat joskus 100kertaisesti ja osoittautui että väitteessä oli pikkuriikkisen perääkin. Viisainta olla puhumatta läpiä päähäni ja vain antaa muutama käytännön esimerkki: 
Koodia: [Valitse]
echo $tekstijono | sed 's/jotakin/joksikin_muuksi/g'         # usein tulee kirjoitettua näin varsinkin kun näin on aikoinaan oppinut ja näin on helppoa kirjoittaa
echo ${tekstijono//jotakin/joksikin_muuksi}                  # tämä on noin 100 kertaa nopeampi. Vaikka monet tuntee tämän niin eipä paljoa näy.
Koodia: [Valitse]
sed 's/jotakin/joksikin_muuksi/g' tiedosto                   
a=$(cat tiedosto); echo -e "${a//mikä/miksi}"                # tämä on paljonkin hitaampi, mutta sed:iä ei tarvita. echo -e on muuten hieman nopeampi kuin pekkkä echo
Koodia: [Valitse]
grep -o ascii-merkki tiedosto | wc -w                        # merkin sijaan voi kirjoittaa sanan tai muuttujan jossa voi olla mitävain.
tr -dc ascii-merkki < tiedosto | wc -w                       # tämä on kymmenen kertaa nopeampi. Tosin kelpaa yksinomaan yksittäisille ascii-merkeille
Koodia: [Valitse]
awk '{print $2}' tiedosto > /dev/null
cut -d ' ' -f 2 tiedosto > /dev/null                         # tämä on yli 2* nopeampi

9
Iso kansio vie talletettaessa kovalevytilaa erilaisilta levyiltä erilaisia määriä. Onko ohjelmia jotka osaavat ennakoida tämän?

- siis tavallaan haluaisin seuraavankaltaisen käskyn: talletuskoko kansio_polkuineen levy
- siis käytännössä kirjoitettaisiin esimerkiksi: talletuskoko /home/käyttäjänimi sda

- voisihan itsekin väsätä tällaisen skriptin. Mutta siinä olisi iso työ, ja salahautoja olisi vilisemällä. Niinkuin esimerkiksi btrfs-tiedostojärjestelmä.
- tosiaan: käsky du vie ihan metsään.

10
Yleistä keskustelua / Muistitikun käyttöönotto
« : 11.09.15 - klo:07.04 »
USB-muistitikkujen käyttöönotto on aina ollut ongelmallista: esimerkiksi noviisille on vaikeus jo se, että käyttöjärjestelmä laittaa tikun usein juuren omistukseen. Samoin tikun osiointi saattaa olla jo tehty tai sitten ei ja jos sillä on tiedosto-järjestelmä voi se olla mikätahansa. Käyttöoikeudet vaihtelee; extended atribuutteja, piilo-osioita tai sovelluksia voi olla, Windows kummittelee ...

Onko olemassa mitään sovellusta joka helpottaisi elämää ja olisi turvallinen käyttää? Sillä on helppo tehdä skripti joka hoitaa kyllä homman täysin automaattisesti, mutta sillä voi vahingossa tehdä myös melkoista tuhoa.

11
Yleistä keskustelua / Massamuistin hankkimisesta
« : 04.09.15 - klo:06.01 »
En ole koskaan välittänyt kun massa-muistien muunti-puheissa on sanottu että se on Windows-yhteensopiva eikä puhuta Linuxista mitään vaan ostanut silti ja aina on toiminut massamuistina moitteetta.

Nyt pitäisi ostaa hintava USB-muistitikku mutta kun siitäkin sanotaan että se on Windows-yhteensopiva eikä puhuta Linuxista mitään.
- käyttäisin sitä pelkästään massamuistina.

Onko käytännössä  mahdollista että jos muistitikku toimii Windowsissa niin ettei se toimisi Linuxissa? Tottakai varusohjelmat eivät toimi, niinkuin esimerkiksi backup. Entäpä salaus? Sormenjälkitunnistus?

12
Laitealue / USB-portin/muistitikun nopeus
« : 27.08.15 - klo:07.52 »
USB-portin/muistitikun nopeus on epämääräinen asia vaikka sille on helppo antaa tarkka arvo joka saattaa olla suurinpiirtein oikeakin mutta kertoo vain mittauskoneen senhetkisen tilanteen. Lisäksi pitää ottaa huomioon että vaikka portti/muistitikku on teoriassa USB2 tai USB3 niin esimerkiksi USB2.1:stä puhutaan USB2:tena vaikka esimerkiksi tiedonsiirtonopeus voi olla yli kaksinkertainen.

Tämä skripti mittaa sen USB-muistin/muistitikun  nopeuden mikä on viimeiseksi laitettu mihintahansa USB-porttiin; siis voi verrata mikä tikun nopeus on eri porteissa olivatpa ne tyypiltään USB1.1, USB2 tai USB3. Tai mikä on eri tikkujen nopeus samassa portissa. Tai mikä on tiedostojärjestelmän vaikutus nopeuteen. Tulokset saavat tosiaan miettimään.

Skripti suorittaa mittauksensa mitattavan suurimmalta osoiolta, joten EFI- ja swap-osioita ei mitata vaikka mitattavalta sellaiset löytyisivätkin. Mitattavan tiedostojärjestelmän tyypin voi määrätä alustamalla tikun siihen muotoon.

Kirjoitusnopeus mitataan tulostamalla muistitikulle tiedosto. Usein kirjoitusnopeus mitataan kopioimalla, mutta silloin saadaan kopiointinopeus mikä on noin 5-10% pienempi kuin kirjoitusnopeus. Kuinkahan moni kaupallinen ohjelma mittaa kopiointinopeuden?
Lukunopeus mitataan tulostamalla tiedosto maton alle elikä tyhjyyteen.

Luotettavimman tuntuiset arvot saadaan kun tiedosto on iso, esimerkiksi 1.1GB. Perättäisissä mittauksissa saadaan hieman erilaisia tuloksia - mutta normaalistikin tiedonsiirto vaihtelee yhtäpaljon.

Linux:issa kaikki levytoiminta kulkee varsinkin kirjoitettaessa cache:jen ja buffereiden kautta ja niistä tulee huolehtia etteivät ne pääsisi sotkemaan mittaustuloksia:  sillä kirjoitus suuntautuu normaalistikin aina buffereihin ja käyttöjärjestelmä tyhjentää buffereitansa levylle omaan tahtiinsa - joskus parin minuutinkin kuluttua buffereissa on vielä jotakin mikäli niitä ei erikseen käsketä tyhjentymään.

- kun mitataan siirtonopeuksia kopioimalla käsin niin on helpointa käyttää nautilusta joka osaa hoitaa nuo cachet ja bufferit mutta ei osaa tulostaa itse vaan surittaa mittauksensa kopioimalla. Ja cp tai jonkin sellaisen käskyn kanssa on sama vaje sen lisäksi että joutuu itse huolehtimaan cacheista, buffereista, luku- ja kirjoitusoikeuksista, kopioitavan olemassaolosta ...

- mittaus sopii myös sata-levyille kunhan muuttaa lauseessa 2: usb:n ata:ksi . Mutta sata-levyjen hot-swap ominaisuus riippuu BIOS:sista jossa saattaa joutua laittamaan AHCI:n päälle tai määräämään sata hot-swap:pableksi tai ...

- vaikka päivitänkin uuden koodin vanhalle paikalle niin ketjun jokainen viesti on tarkkaan luettu ja otettu opiksi.
Koodia: [Valitse]
#!/bin/bash
ViimeiseksiLiitettyLevy=$(sudo ls -l /dev/disk/by-id | sort -r --key=8 | grep usb | grep -om 1 sd.$)
SenSuurinOsio=$(lsblk -m | grep -v ^sd | grep $ViimeiseksiLiitettyLevy | sort -r --key=2 | head -1 | awk '{print $1}' | grep -o sd.*) # nimenomaan välttää EFI-osiota
echo 'viimeiseksi järjestelmään liitetyn USB-muistin laitenimi: '$ViimeiseksiLiitettyLevy'  ja sen suurin osio: '$SenSuurinOsio'     tiedostotyyppi: '$(sudo blkid -o value -s TYPE /dev/$SenSuurinOsio)
echo 'sen todellinen nimi:'$(ls -l /dev/disk/by-id | grep $ViimeiseksiLiitettyLevy$ | awk '{print $9}')
echo 'sen laiteportti on tyyppiä: '$(sudo lsusb -v | grep -A 5 $(dmesg | grep Manufacturer: | awk 'END{print $5}') | awk '/bcdUSB/{print $2}')
sudo mount -t auto /dev/$SenSuurinOsio /mnt
sudo chown $USER:$USER /mnt # eipä lupia kannata kysellä kun useimmat eivät välitä koko käyttö-oikeus asiasta 
echo ' ' > /mnt/koetiedosto ; chmod u+rw /mnt/koetiedosto
echo;echo 'mennään mittaamaan nopeuksia ja se saattaa kestää minuutinkin';echo

sync # jos buffereissa on vielä jotakin muiden tehtävien hommia pakotetaan ne ensin pois mittausta sotkemasta
Alkuhetki=$(date +%s.%N)
seq -s vapaavalintainenteksti 1 5000000 > /mnt/koetiedosto
sync # tämä kirjoittaa levylle cachesta kaiken joka on uudempaa kuin levyllä jo oleva.
sudo sh -c "$(which echo) 3 > /proc/sys/vm/drop_caches" # tämä tyhjentää bufferit. tuloksen voi tarkistaa käskyllä: free -m .
# drop-caches:ille ei voi palauttaa arvoa 0, mutta silti niitä buffereita täytetään heti uudestaan kuten voit tarkistaa lukemalla levyltä jotakin ja tulostamalla: free -m.
Loppuhetki=$(date +%s.%N)
tiedostonkoko=$(echo $(stat -c%s /mnt/koetiedosto)*8/1000000 | bc -l); echo 'tiedostonkoko megabittiä: '$tiedostonkoko
aikasekunteina=$(echo $Loppuhetki-$Alkuhetki | bc -l); echo 'Aika sekunteina: '$aikasekunteina
tiedonsiirronnopeus=$(echo $tiedostonkoko'/'$aikasekunteina | bc -l)
echo 'kirjoitusnopeus megabittiä sekunnissa (tuolle muistitikulle siinä portissa kun se on) = '$tiedonsiirronnopeus

echo
sync
sudo sh -c "$(which echo) 3 > /proc/sys/vm/drop_caches"
Alkuhetki=$(date +%s.%N)
cat /mnt/koetiedosto > /dev/null
sync
Loppuhetki=$(date +%s.%N)
tiedostonkoko=$(echo $(stat -c%s /mnt/koetiedosto)*8/1000000 | bc -l); echo 'tiedostonkoko megabittiä: '$tiedostonkoko
aikasekunteina=$(echo $Loppuhetki-$Alkuhetki | bc -l); echo 'Aika sekunteina: '$aikasekunteina
tiedonsiirronnopeus=$(echo $tiedostonkoko'/'$aikasekunteina | bc -l)
echo 'lukunopeus megabittiä sekunnissa (tuolta muistitikulta siinä portissa kun se on) = '$tiedonsiirronnopeus

rm /mnt/koetiedosto
sudo umount /mnt

13
Minun mielestäni esimerkki on jonkinverran käyttökelpoinen yksinäänkin, mutta teoria on vahingollinen ilman esimerkkiä eli sovellusohjetta.

Atomic-group:ista ei esitetä missään kunnollista esimerkkiä mutta kelvottomia esimerkkejä runsaasti. Kunnon esimerkillä tarkoitan sellaista esimerkkiä josta selviää se jokapaikassa väitetty nopeutus edes jotenkin samoinkuin katastrofeilta suojaava ominaisuus. Yhden hölmön esimerkin löysin regex-info sivuilta - tosin kokonaisuuteen piti hakea palasia monesta paikasta. Lisäksi tämä selvittää vasta katastrofeilta suojaamista:
Koodia: [Valitse]
echo '< kakkularatsis ja hilipata hoi >'  | grep -Po '(\D+|<\d+>)*[!?]'     # tämä kestää minun koneessani noin 60-100ms ja päätyy virheeseen.
echo '< kakkularatsis ja hilipata hoi >'  | grep -Po '((?>\D+)|<\d+>)*[!?]' # atomic-group:illa varustettuna sama kestää noin 4ms, ei pääty virheeseen muttei tulostakaan mitään
echo '< kakkularatsis ja hilipata hoi >?' | grep -Po '((?>\D+)|<\d+>)*[!?]' # tämä kestää saman noin 4ms ja tulostaa:  ? 
- atomic-group on tuo kahdessa viimeisessä esimerkissä oleva: (?>\D+) .
**
atomic-group:in nopeutuksesta osaan esittää vain yhden täysin mielipuolisen esimerkin:
Koodia: [Valitse]
echo 'kymmenentuhatta a-kirjainta peräkkäin' | grep -P '(?>a*)' > /dev/null      # tämän pitäisi olla se nopeampi ja kyllähän se hieman onkin
echo 'kymmenentuhatta a-kirjainta peräkkäin' | grep -P 'a*' > /dev/null
- muissa esimerkeissä pilasin yhden kovalevyn miljoonilla toistoilla (esimerkiksi suoritusajan keskiarvon saamiseksi) ja tuloksena oli vain epäilys että atomic-group yleensä päinvastoin kuluttaa aikaa.
**
Atomic-group:in tarkoituksena on, että valitaan käyttöön joko yksinkertainen- tai monimutkainen regex siten, että monimutkainen ei saa alkaa samallatavoin kuin yksinkertainen -> "hienommin" sanottuna estetään backtracking.

Mikäli regex:ät muodostetaan käsin koodaamalla  on atomic-group:in käyttäminen hölmöä, joten seuraavissa esimerkeissä ei sinällään ole järkeä. Atomic-group:in käyttökelpoisuus perustuukin siihen että pätevämmissä hyötyohjelmissa regex:ät muodostetaan muuttujilla.
- ehkä tuo väite että regex:ät voidaan muodostaa muuttujilla kaipaa sekin osoitusta: regex="[0-9]"; echo "9 aaa b" | grep -o "$regex" # tulostaa: 9

Seuraavat esimerkit kertovat atomic-group:in toiminnan koodina:
Koodia: [Valitse]
echo accc  | grep -Po 'a(?>b|cc)c'   # tulostaa: accc -> siis ?>b:llä ei ole mitään funktiota koska "echo:tussa" ei b:tä ole.           
echo abcc  | grep -Po 'a(?>b|bc)c'   # tulostaa: abc  -> siis ?>b määrää ettei muita vaihtoehtoja koeteta kun b löytyy
echo abccc | grep -Po 'a(?>b|cc)c'   # tulostaa: abc  -> siis ?>b määrää ettei muita vaihtoehtoja koeteta kun b löytyy (varmistus)
     
echo abac  | grep -Po 'a(?>bb|ba)c'  # tulostaa: abac -> siis ?>bb määrää, että bb-alkuiset on lukittu mutta kaikki muut toimii kyllä, vaikka ba:kin toimii.
echo abc   | grep -Po 'a(?>bb|b)c'   # tulostaa: abc  -> siis ?>bb määrää, että bb-alkuiset on lukittu mutta kaikki muut toimii kyllä, vaikka b:kin toimii.
echo abbac | grep -Po 'a(?>bb|bba)c' # ei tulosta mitään, koska ?>bb määrää, ettei bb-alkuisten regex:ät eivät voi saada muita arvoja.
**
Atomic tarkoittaa: jakamaton eikä sitä voi muuttaa kun se on kerran tehty.

Kun BASH:issa atomic liitetään ryhmään ei koko ryhmässä voi muuttaa mitään niin kauan kuin atomic on joukossa. 
 

14
Yleistä keskustelua / UEFI:n merkityksestä
« : 26.04.15 - klo:05.08 »
Vuosia sitten ihastuin EFI:in; silloin kun mikkisofta loisti poissaolollaan ja ennenkaikkea luvattiin paljon hyvää niinkuin esimerkiksi verkko-toimintoja. Mutta niitä hyviä puolia ei tullut ja mielestäni nykymuodossaan UEFI vain tuo Windowsin huonoja puolia Linuxiin. Mutta mitä mieltä muut olette?

15
PC:ni SSD -levy kipsahti kuukausi sitten, joten ostin eilen uuden ja asensin tänään Ubuntu 15.04:n.
Päivitetyllä koneella ja uusimmalla daily:llä kaikki toimi lähes samoin kuin ennenkin - senverran eroa oli että gpartedissa täytyi merkitä fat32-osion flag:iksi  boot ja esp.
Riemu olikin ennenaikaista sillä nähtävästi ne pyysivät mikrosoftilta apua loppusilauksessa; tilanne on siis taas se että ensin asennetaan niin että kaikki on yhdessä osiossa ja sitten poistetaan käyttöjärjestelmä-osio jättäen se EFI-osio ja swap. Sitten luodan omat osiot käyttöjärjestelmälle ja kodille ja asennetaan normaalisti.

- muuten asennus tekee automaattisesti GPT-tyyppisen osiotaulun.
- jos ihmettelet mikä osiotaulusi tyyppi on niin se selviää käskyllä:
Koodia: [Valitse]
[[ $(sudo parted -l | grep -m 1 "Partition Table" | awk '{print $3}') = msdos ]] && echo mbr || echo gpt
PC voi bootata joko BIOS- tai UEFI-muotoon riippuen ainoastaan siita minkamuotoiselta levykuvalta on bootattu. Jos ihmettelet oletko bootannut UEFI-muotoon niin se selviää käskyllä:
Koodia: [Valitse]
dmesg | grep "efi:"   # tämä ei tulosta mitään jos EFI:ä ei ole
tai: sudo efibootmgr  # tämä taas tulostaa EFI-boottausvälineet

- ei se alkuperäinenkään SSD-levy ollut hajonnut, vaan Ubuntun EFI-osion käyttäytyminen oli muuttunut. Yritetäänkö meitä nörttejä savustaa pois Ubuntusta ? Eipä silti, Mikrosoftinhan se UEFI on - siis alunperin Mikrosoft ei edes tunnustanut EFI:ä muutta omi sen sittemmin itselleen. Mikkisoftistit ovat varmasti eri mieltä.
 
- samalla kovalevyllä voi olla useampikin Ubuntu. Luulisinpa että ne voisivat olla toisiakin EFI:ä käyttäviä käyttöjärjestelmiä. Saattaapa EFI-Windows:kin mahtua joukkoon, mutta en tiedä enkä edes halua tietää. Muuten EFI-osioita on aina vain yksi ja kaikki käyttävät samaa - siis jokakerran asennettaessa uusi käyttöjärjestelmä sille täytyy kertoa että käytetään EFI-osiota.

- myös USB-muistitikulle asentaminen onnistui. Asentaminen kesti vain 15 minuuttia, mutta välillä kaikki tuntui pysähtyvän. Mutta sekin siis käyttää kovalevyn EFI-osiota.  Tällätavoin saa kummallisen erikois-efektin: kovalevyn boottaaminen suoraan ei onnistukaan vaan ainoastaan kun tuo tikku on koneessa. Tällätavoin asennettu muistitikku ei toimi toisessa koneessa.

- mikäli asentaa muistitikulle oman efi-osion niin seuraa vielä mielenkiintoisempaa:
1. saat asentaa kovalevysi uudestaan. Se on tosin vain yhdenkerran harmi.
2. muistitikulta bootatessa päädytään aina ensin urputukseen: unauthorized .... , mutta kun painaa nappulaa: n niin senjälkeen boottaus tapahtuu normaalisti.

16
Yleistä keskustelua / Pitäisi ostaa uusi näyttö
« : 16.04.15 - klo:12.59 »
Pitäisi ostaa uusi näyttö ja haluttaisi ostaa 4k-näyttö. Emolevy tukee kyllä 4k-näyttöä, mutta pelkäänpä että odotettavissa olisi vaikeuksia. Kuinka on, kannattako kokeilla?

- minulla on kylläkin ketunhäntä kainalossa, sillä jos nykyinen pc:ni ei 4k-nätöllä toimisikaan niin saisin rakentaa uuden  ::)

17
Yleistä keskustelua / BASH:in tilanne ?
« : 15.02.15 - klo:19.38 »
Äskettäinhän 15.04:ssä päivittyi grep ja se sai ajatukset liikkeelle sillä yksinäänhän BASH ei ole mitään, vaan vaatii grep-sed-awk....

Shellshock:sta kertoivat  tietääkseeni ensimmäisinä BAS:hin kehittäjä ja ykkös-"assitentti" ja se oli  käsittääkseeni viesti Linuxin kehittäjille: tämmöisiä on Linux:issa? BASH:issa? enemmänkin. Tehkää nyt jotakin: antakaa BASH:ille kuolinisku tai poistakaa Linuxin varusohjelmista reikiä. Onkohan jotakin tapahtumassa ? 

18
Asentaminen ja käyttöönotto / Tulostimen asettamisesta
« : 08.01.15 - klo:15.47 »
Tuosta toisen ketjun Maten printterin asettamisesta tuli mieleen, että mihin suuntaan kehitys on menossa kun Ubuntussa ei aikoinaan ollut kuin mitättömän pieniä vaikeuksia printterin asettamisessa ja homma on yleensä toiminut ihan automaattisesti. Mutta näillä viimeisillä aika työläitä vaikeuksia on taas tullut - esimerkiksi 14.10:n kanssa tappelin varttitunnin.
- tosin minulla on ollut sama printteri jo kymmenen vuotta - tippuukohan noiden vanhojen ajureita jo pois perus-asennuksesta ? Käsittääkseeni ajureita on nykyään jo niin paljon että monet niistä sijoitetaan linux-image-extra:an. Jos sieltä hakeminen ei enää olekaan ihan automaattista ?

19
Päivittämiseen kannattaa tehdä skripti, sillä päivityksessä on monia vaiheita: esimerkiksi kerneleitä kertyy paljon ja ne vievät turhaan kovalevytilaa, noin 100M kerneliä kohden ja varsinkin kehitysversioilla kerneleitä saattaa kertyä niin monia että kone tukehtuu. Päivittämiseen kuuluu turhien kernelien poistamisen lisäksi myös boottaukseen osallistumattomien osioiden tarkistusta ja päivityskelpoisuudesta huolehtimista.

Tämän foorumin sivulla: http://forum.ubuntu-fi.org/index.php?topic=47495.0 esitetty päivitys-skripti ei sovellu käytettäväksi kun tiedostojärjestelmänä on BTRFS ja ainakin toistaiseksi BTRFS kannattaa päivittää omalla skriptillään. Koska BTRFS muuttuu vielä ei täydellistä päivitys-skriptiä kannata tehdä; osioiden tarkistus ja päivityskelpoisuudesta huolehtiminen jäävät toistaiseksi pois. Tällainen on raakile-päivitys-skripti:

Koodia: [Valitse]
#!/bin/bash     
# paivita 18.12.2014 petteriIII

function unmountmnt { # if grep -qs '/mnt/@ /foo' /proc/mounts; then
cd / # umount ei onnistu, jos joku umountattavan kansio on valittuna
sudo echo ""
for mountattu in $(sudo mount | grep /mnt/@  | awk '{print $3}')
do
  if grep -qs $mountattu /proc/mounts; then sudo umount -l $mountattu; fi
done 
echo '/mnt/@ :n mountit on poistettu'
}

function Levy { echo -n $(ls -l /dev/disk/by-id | grep -m 1 '/'${Chrootosio##*/} | awk '{print $9}' | sed "s/-part*//g");}

function paivitaKaikkiOsiot () { # itseensä chroottaus onnistuu ihan kivasti joten tällätavoin voi ihan hyvin päivittää itsensä
# unmountmnt
for Chrootosio in $(sudo blkid | grep btrfs | awk '{print $1}' | sed 's/\://g'); do

  osiontyyppi=$(sudo blkid -o value -s TYPE $Chrootosio)
  sudo mount -t $osiontyyppi $Chrootosio /mnt
  [[ -d /mnt/@ ]] && {
 sudo mount -t sysfs none /mnt/@/sys && sudo mount -t proc none /mnt/@/proc && sudo mount --bind /dev/ /mnt/@/dev &&  sudo mount --bind /dev/pts /mnt/@/dev/pts && sudo mount -o bind /etc/resolv.conf /mnt/@/etc/resolv.conf && sudo mount -o bind /dev/shm /mnt/@/dev/shm

# poistetaan turhat imaget # ei vielä valmis
  for n in $(ls /mnt/@/boot | grep config | grep -v $(ls /mnt/@/boot | grep config | sort | tail -1) | sed 's/config-//g'); do
    echo 'poistan: linux-image-'$n; sudo chroot /mnt/@ apt-get --yes --force-yes purge 'linux-image-'$n # purge -> remove auto-remove
    echo 'poistan: linux-image-extra-'$n; sudo chroot /mnt/@ apt-get --yes --force-yes purge 'linux-image-extra-'$n # muistutuksena siitä mitä tapahtuu.
    echo 'poistan: linux-headers-'$n; sudo chroot /mnt/@ apt-get --yes --force-yes purge 'linux-headers-'$n
  done # Mikäli et halua poistaa imageja kommentoi koodia

  echo; echo -n '********** päivitetään: '$Chrootosio '   levyllä: '; Levy; echo '     tiedostomuoto: '$osiontyyppi; echo
  sudo chroot /mnt/@  apt-get update
  sudo chroot /mnt/@  apt-get -y dist-upgrade
                     }
unmountmnt
done
}

# Pääohjelma
echo ''; sudo echo
hommaalkoi="$(date +%s)"
paivitaKaikkiOsiot
echo -e 'päivitetty: '$(date +"%d-%m-%y %k:%M")'\t ja päivittäminen kesti: '$(date -d@$(echo $(date +%s)-$hommaalkoi-7200 | bc) | awk '{print $3}')

- muuten päivitys toimii myös EFI:llä silloinkin kun on bootattu live-versiolla tai toiselta levyltä. Luullakseni tämä ei ole bugi, ja jos chroot kielletäisiin niin minä menisinkin barrikaadeille.
- myöskään gpt-osiointi hyväksytään.
- live-versiolla bootattaessa pitää avata verkkoyhteys.

20
Aikaa on jo kulunut melkoisesti siitä kun anttimr käsitteli aihetta: apt-btrfs-snapshot sivulla: http://forum.ubuntu-fi.org/index.php?topic=43347.msg333725#msg333725 ja voinee alkaa harkita snapshotin backup ominaisuuksia.
- snapshot on käsittääkseeni yksinomaan btrfs:n ominaisuus. Netissä kylläkin puhutaan myös EXT4-snapshotista, mutta mitään selvää en ole löytänyt.

Jos järjestelmää on tarkoitus hoitaa täytyy siitä ottaa backup erittäin usein; jopa kerran tunnissa otettava back-up voi kadottaa jotakin tärkeää ja ainakin sen puute voi aiheuttaa turhaa työtä. Btrfs-tiedostojärjestelmää käytettäessä back-up:in voi ottaa usein sillä backup otetaan erittäin nopeasti eikä se edes vie paljoa levytilaa. Järjestelmästä voidaan aina ottaa snapshot, ja mikäli koti-osio on erillinen voi siitä ottaa erillisen snapshot.

Servereissä ei mielellään tehdä päivityksiä kovin usein sillä päivitykset saattavat johtaa katastrofiin eikä servereitä voi korjata päivä-tolkkua niinkuin kotikonetta. Tavallinen back-up on lisäksi hidas ottaa ja serveri on pysäytettävä sen ottamisen ajaksi. Snapshot on teoriassa yksi ratkaisu: ennen päivitystä otetaan snapshot ja ellei päivitetty toimi kunnolla niin palataan vain siihen vanhaan. Varautuminen boottauskelvottomuuteen vaatii kyllä omat järjestelynsä.

Tuo apt-snapshot luo automaattisesti snapshotin (=hetkellis-kuva ?) järjestelmästä silloin kun tehdään joku apt-operaatio kuten esimerkiksi päivitys päätteeltä. Joskus haluaisi kuitenkin luoda snapshotin ennenkuin tekee jotakin mikä saattaa sekoittaa koneen toiminnan, esimerkiksi lisää näyttöajurin. Silloin sanapshot luodaan käskyllä:
Koodia: [Valitse]
sudo mount /dev/sdX# /mnt; sudo btrfs subvolume snapshot /mnt/@ /mnt/@_snapshot

- se millä on bootattu voi siis mountata itseensä ja tehdä snapshotin.
- ihan yhtähyvin sen snapshotin voi tehdä mistähyvänsä btrfs-osiosta kun on bootattu live-versiolla.

Palauta snapshot käskyllä:
Koodia: [Valitse]
sudo mv /mnt/@ /mnt/@_badroot; sudo mv /mnt/@_snapshot /mnt/@ 

- ennen aikaisemmin otetun snapshotin palautusta nykyinen kannattaa tallettaa ainakin väliaikaisesti

Myös erilliskodista voi tehdä snapshotin käskyllä:
Koodia: [Valitse]
sudo mount /dev/sdX# /mnt; sudo btrfs subvolume snapshot /mnt/@home /mnt/@home_snapshot

- snapshot tehdään koti-osiolle

- ota huomioon että : sdX# on toinen kuin mitä se on järjestelmällä

Poista se huono snapshot kun olet todennut toisen toimivan:
Koodia: [Valitse]
sudo btrfs subvolume delete /mnt/@_badroot


- snapshoteja ei saa poistaa muilla tavoilla.
- tämä on vasta perusta jota voi kokeilla kertaluonteisesti - kunnollinen backup vaatii paljon toimia ja niitä on paras ohjata skriptillä.
- snapshot:ista ei yksinään ole backup:iksi sillä mikäli järjestelmälle tapahtuu jotakin jonka jälkeen järjestelmä ei boottaa niin kaikki menee - mutta boottaamalla live-versiolle sen snapshotin voi vaihtaa käyttöön. Live-tikku tulee siis olla aina ja sen tulee olla samaa versiota kuin se minkä snapshot palautetaan.
- snapshot:in otto on nopeaa ja se otetaan aina normaalin toiminnan aikana. Luulisin muuten ettei snapshotissa kopioda juuri mitään vaan kun alkuperäistä muutetaan niin osoittimia siirrellään ensimmäisellä muutoskerralla.
- snapshot/backup-valmisohjelmia on jo lukemattomia toinen toistaan parempia, mutta snapshot-skriptisi joudut tekemään itse sillä yksin et oo mittään ja ainoastaan monimuotoisuus auttaa ryhmää; kaikilla tulee olla omantyyppisensä viritys.

Sivuja: [1] 2 3 4