Ubuntu 16.04 USB persistens

Her kan du få hjælp til installationen af Ubuntu.
thj01
Indlæg: 2667
Tilmeldt: 21. nov 2006, 10:06
Geografisk sted: Fredericia

Re: Ubuntu 16.04 USB persistens

Indlæg af thj01 »

AJenbo skrev:At bruge dd til at lægge en Iso på en USB er heller ikke helt korrekt så det ville ikke overraske mig hvis det ikke ville fungere med alle maskiner, rescue scriptet tager nok nettop højde for dette.


Jeg har lidt svært ved at se hvorfor dd ikke skulle være korrekt, når man har kørt "isohybrid". (http://www.vidas.dk/guides/Term_06_Hard ... section1.6)

Det skal lige siges, at jeg har oplevet at Ubuntu 14.04 løbende har maltrakteret mine USB nøgler, og af mystiske årsager, så lader server 14.04 ikke til at gøre det samme ?? Jeg har en mistanke om at det skyldes noget med kernen, for selv efter man kører partprobe så opdaterer kernen ikke dens informationer om computerens partitioner.
Forfatter til Ubuntuguiden: http://www.vidas.dk/guides/ubuntuguiden.html

Kører LTS udgaverne.

"It's always easy if you know how to do it."
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Ubuntu 16.04 USB persistens

Indlæg af lath »

thj01 skrev:
AJenbo skrev:At bruge dd til at lægge en Iso på en USB er heller ikke helt korrekt så det ville ikke overraske mig hvis det ikke ville fungere med alle maskiner, rescue scriptet tager nok nettop højde for dette.


Jeg har lidt svært ved at se hvorfor dd ikke skulle være korrekt, når man har kørt "isohybrid". (http://www.vidas.dk/guides/Term_06_Hard ... section1.6)

Det skal lige siges, at jeg har oplevet at Ubuntu 14.04 løbende har maltrakteret mine USB nøgler, og af mystiske årsager, så lader server 14.04 ikke til at gøre det samme ?? Jeg har en mistanke om at det skyldes noget med kernen, for selv efter man kører partprobe så opdaterer kernen ikke dens informationer om computerens partitioner.


Hvis gparted og lignede kommer med fejl meddelelser, så prøv at køre:

Kode: Vælg alt

sudo partprobe

... som opdaterer kernens ide (cache) om partitions på alle block devices.

dd virker fint hos mig
options så som

Kode: Vælg alt

oflag=direct,dsync,sync

... samt,

Kode: Vælg alt

bs=2M

... gør at din shell først melder klar når kopieringen er helt færdig.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Ubuntu 16.04 USB persistens

Indlæg af AJenbo »

thj01 skrev:Jeg har lidt svært ved at se hvorfor dd ikke skulle være korrekt, når man har kørt "isohybrid". (http://www.vidas.dk/guides/Term_06_Hard ... section1.6)

Det kan du måske godt have ret i.

thj01 skrev:Jeg har en mistanke om at det skyldes noget med kernen

Det er efterhånden en del år (før 14.04, efter 12.04) siden de skiftede til at køre med samme kerne på desktop og server.
thj01
Indlæg: 2667
Tilmeldt: 21. nov 2006, 10:06
Geografisk sted: Fredericia

Re: Ubuntu 16.04 USB persistens

Indlæg af thj01 »

@lath

Jeg har lige nu (som i lige nu) forsøgt at fdisk en USB-nøgle.

sletter partitionen
opretter en ny
skriver
kører partprobe.


.... og der er ingen ændringer sket. Heller ikke efter en genstart.

Herunder er mit outpput
(dog på 14.04)

Kode: Vælg alt

thoj@thoj-Precision-M4800:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   477G  0 disk
├─sda1   8:1    0 160,6G  0 part /
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0  15,3G  0 part [SWAP]
└─sda6   8:6    0 301,1G  0 part /data
sdb      8:16   1    15G  0 disk
└─sdb1   8:17   1    15G  0 part /media/thoj/IRM_SSS_X64FRE_EN-US_DV5
sr0     11:0    1  1024M  0 rom 
thoj@thoj-Precision-M4800:~$ sudo fdisk /dev/sdb
[sudo] password for thoj:

Kommando (m for hjælp): d
Partition 1 er valgt

Kommando (m for hjælp): p

Disk /dev/sdb: 16.1 GB, 16122904576 bytes
43 hoveder, 2 sektorer/spor, 366163 cylindre, i alt 31490048 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 512 byte / 512 byte
Diskidentifikation: 0x232c7b85

    Enhed Opstart   Start         Slut     Blokke   Id  System

Kommando (m for hjælp): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):
Using default response p
Partitionsnummer (1-4, standard 1):
Bruger standardværdi 1
Første sektor (2048-31490047, standard 2048):
Bruger standardværdi 2048
Seneste sektor, +sektorer eller +størrelse{K,M,G} (2048-31490047, standard 31490047):
Bruger standardværdi 31490047

Kommando (m for hjælp):
Kommando (m for hjælp): p

Disk /dev/sdb: 16.1 GB, 16122904576 bytes
43 hoveder, 2 sektorer/spor, 366163 cylindre, i alt 31490048 sektorer
Enheder = sektorer af 1 * 512 = 512 byte
Sektorstørrelse (logisk/fysisk): 512 byte / 512 byte
I/O-størrelse (minimum/optimal): 512 byte / 512 byte
Diskidentifikation: 0x232c7b85

    Enhed Opstart   Start         Slut     Blokke   Id  System
/dev/sdb1            2048    31490047    15744000   83  Linux

Kommando (m for hjælp): w
Partitionstabellen er ændret!

Kalder ioctl() for at genindlæse partitionstabellen.

ADVARSEL: Genindlæsning af partitionstabel mislykkedes med fejlen
16: Enheden eller ressourcen optaget. Denne kerne bruger stadig den gamle tabel. Den nye tabel vil
blive brugt fra næste genstart, eller efter du kører partprobe(8) eller
kpartx(8)
Synkroniserer diske.
thoj@thoj-Precision-M4800:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   477G  0 disk
├─sda1   8:1    0 160,6G  0 part /
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0  15,3G  0 part [SWAP]
└─sda6   8:6    0 301,1G  0 part /data
sdb      8:16   1    15G  0 disk
└─sdb1   8:17   1    15G  0 part /media/thoj/IRM_SSS_X64FRE_EN-US_DV5
sr0     11:0    1  1024M  0 rom 
thoj@thoj-Precision-M4800:~$ sudo partprobe
thoj@thoj-Precision-M4800:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   477G  0 disk
├─sda1   8:1    0 160,6G  0 part /
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0  15,3G  0 part [SWAP]
└─sda6   8:6    0 301,1G  0 part /data
sdb      8:16   1    15G  0 disk
└─sdb1   8:17   1    15G  0 part /media/thoj/IRM_SSS_X64FRE_EN-US_DV5
sr0     11:0    1  1024M  0 rom 
thoj@thoj-Precision-M4800:~$
Forfatter til Ubuntuguiden: http://www.vidas.dk/guides/ubuntuguiden.html

Kører LTS udgaverne.

"It's always easy if you know how to do it."
Brugeravatar
Kurt Christensen
Indlæg: 2246
Tilmeldt: 12. feb 2011, 13:22
IRC nickname: How to be me

Re: Ubuntu 16.04 USB persistens

Indlæg af Kurt Christensen »

Kurt Christensen skrev:Løsningen bliver at installer 14.04 lts for at beholde den 'gamle' funktionsmåde, og så må man opdaterer hvis man ved brug til installation vil ende med 16.04.
nb man skal så også køre i 14.04 for at få valget at oprette med hukommelse.

Så lykkes det at lave et usb-stik med 16.04 der husker. Det er gjort med Unetbootin og fra 14.04.
Når lejligheden byder sig.
thj01
Indlæg: 2667
Tilmeldt: 21. nov 2006, 10:06
Geografisk sted: Fredericia

Re: Ubuntu 16.04 USB persistens

Indlæg af thj01 »

Lidt ekstre debugging materiale:


Kode: Vælg alt

thoj@thoj-Precision-M4800:/data/Programmer_hentede/Linux$ sudo dd if=ubuntu-16.04-desktop-amd64.iso of=/dev/sdb
[sudo] password for thoj:
2902112+0 blokke ind
2902112+0 blokke ud
1485881344 byte (1,5 GB) kopieret, 410,816 s, 3,6 MB/s
thoj@thoj-Precision-M4800:/data/Programmer_hentede/Linux$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   477G  0 disk
├─sda1   8:1    0 160,6G  0 part /
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0  15,3G  0 part [SWAP]
└─sda6   8:6    0 301,1G  0 part /data
sdb      8:16   1   3,8G  0 disk
└─sdb1   8:17   1   459M  0 part
sr0     11:0    1  1024M  0 rom 
thoj@thoj-Precision-M4800:/data/Programmer_hentede/Linux$ sudo partprobe
Warning: /dev/sdb indeholder GPT-signaturer, der tyder på at den har en GPT-tabel. Imidlertid har den ikke en gyldig "falsk msdos-partitionstabel", som den burde. Måske er den ødelagt - muligvis af et program der ikke forstår GPT-partitionstabeller. Eller måske slettede du GPT-tabellen, og bruger nu en msdos-partitionstabel. Er dette en GPT-partitionstabel?
Error: Both the primary and backup GPT tables are corrupt.  Try making a fresh table, and using Parted's rescue feature to recover partitions.
Forfatter til Ubuntuguiden: http://www.vidas.dk/guides/ubuntuguiden.html

Kører LTS udgaverne.

"It's always easy if you know how to do it."
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Ubuntu 16.04 USB persistens

Indlæg af lath »

thj01 skrev:Lidt ekstre debugging materiale:


Kode: Vælg alt

thoj@thoj-Precision-M4800:/data/Programmer_hentede/Linux$ sudo dd if=ubuntu-16.04-desktop-amd64.iso of=/dev/sdb
[sudo] password for thoj:
2902112+0 blokke ind
2902112+0 blokke ud
1485881344 byte (1,5 GB) kopieret, 410,816 s, 3,6 MB/s
thoj@thoj-Precision-M4800:/data/Programmer_hentede/Linux$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   477G  0 disk
├─sda1   8:1    0 160,6G  0 part /
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0  15,3G  0 part [SWAP]
└─sda6   8:6    0 301,1G  0 part /data
sdb      8:16   1   3,8G  0 disk
└─sdb1   8:17   1   459M  0 part
sr0     11:0    1  1024M  0 rom 
thoj@thoj-Precision-M4800:/data/Programmer_hentede/Linux$ sudo partprobe
Warning: /dev/sdb indeholder GPT-signaturer, der tyder på at den har en GPT-tabel. Imidlertid har den ikke en gyldig "falsk msdos-partitionstabel", som den burde. Måske er den ødelagt - muligvis af et program der ikke forstår GPT-partitionstabeller. Eller måske slettede du GPT-tabellen, og bruger nu en msdos-partitionstabel. Er dette en GPT-partitionstabel?
Error: Both the primary and backup GPT tables are corrupt.  Try making a fresh table, and using Parted's rescue feature to recover partitions.


Jeg kan se at du ikke har brugt de dd oflag jeg skrev.
Det er en god ide af de årsager er jeg nævnte i mit tidligere indlæg her i tråden også at køre partprobe efter enhver ændring, som vedrører en ændring af partitions, og/eller filsystemer på et block device: USB disk, harddisk og lignende.

En anden mulighed er på det kvante fysiske niveau, der kaldes for wear.
Wear tilstanden er at en eller flere flash celler er slidt op, fordi den kvante fysiske fælde der holder en elektron fanget i en flash cellle ikke længere virker.
Der hvor en flash celle der er ramt af wear resulterer i at flash cellen ikke kan skifte logisk niveau - den kan ikke skifte fra logisk 0 til logisk 1, eller omvendt.
I virkeligheden så lagrer en flash celle i den billige afdeling 2 bits per flash celle (et tal fra 0 til 4). Kun de dyre flash celler bruger 1 bit per flash celle.

På grund af wear kan der ikke laves ændringer, og så meldes der - helt korrekt - om fejl i partition tabellen.

For at undgå wear, så bruges noget der hedder wear leveling, som er indlagt i firmwaren for en SSD harddisks microcontroller.
For USB lagerenheder der ikke har wear leveling kan du bruge et Linux filsystem der implementerer wear leveling. Du skal naturligvis have et kerne modul der kan læse filsystem.
Hvis filsystemet bruges til at boote fra, så skal filsystemet bygges ind i kernen, når kernen oversættes af en C compiler (GCC).

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
thj01
Indlæg: 2667
Tilmeldt: 21. nov 2006, 10:06
Geografisk sted: Fredericia

Re: Ubuntu 16.04 USB persistens

Indlæg af thj01 »

@lath

Det som er underligt er, at USB disken virkede fint til at installere Ubuntu 16.04 fra.

Mine USB diske brokker sig kun når det bliver lavet fra ubuntu. Det kører fint hvis jeg anvender server eller SystemrescueCD ...

Her er hvad der sker på 16.04 (har lige installeret og konfigureret her til formiddag :)

Kode: Vælg alt

thoj@thoj-Precision-M4800:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   477G  0 disk
├─sda1   8:1    0 160,6G  0 part /
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0  15,3G  0 part [SWAP]
└─sda6   8:6    0 301,1G  0 part /data
sdb      8:16   1   3,8G  0 disk
├─sdb1   8:17   1   1,4G  0 part /media/thoj/Ubuntu 16.04 LTS amd64
└─sdb2   8:18   1   2,3M  0 part
sr0     11:0    1  1024M  0 rom 
thoj@thoj-Precision-M4800:~$ sudo fdisk /dev/sdb

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Kommando (m for hjælp): p
Disk /dev/sdb: 3,8 GiB, 4026531840 bytes, 7864320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0e0e8e70

Enhed      Opstart   Start    Slut Sektorer  Size Id Type
/dev/sdb1  *             0 2902111  2902112  1,4G  0 Tom
/dev/sdb2          2888004 2892739     4736  2,3M ef EFI (FAT-12/16/32)

Kommando (m for hjælp): d
Partitionsnummer (1,2, default 2): 2

Partition 2 has been deleted.

Kommando (m for hjælp): d
Selected partition 1
Partition 1 has been deleted.

Kommando (m for hjælp): 1
1: unknown command

Kommando (m for hjælp): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partitionsnummer (1-4, default 1):
First sector (2048-7864319, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-7864319, default 7864319):

Created a new partition 1 of type 'Linux' and of size 3,8 GiB.

Kommando (m for hjælp): p
Disk /dev/sdb: 3,8 GiB, 4026531840 bytes, 7864320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0e0e8e70

Enhed      Opstart Start    Slut Sektorer  Size Id Type
/dev/sdb1           2048 7864319  7862272  3,8G 83 Linux

Kommando (m for hjælp): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Enheden eller ressourcen optaget

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

thoj@thoj-Precision-M4800:~$ sudo partprobe
Warning: Enhedens beskriver påstår at den fysiske blokstørrelse er 2048 byte, men Linux påstår at den er 512 byte.
thoj@thoj-Precision-M4800:~$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   477G  0 disk
├─sda1   8:1    0 160,6G  0 part /
├─sda5   8:5    0  15,3G  0 part [SWAP]
└─sda6   8:6    0 301,1G  0 part /data
sdb      8:16   1   3,8G  0 disk
├─sdb1   8:17   1   1,4G  0 part /media/thoj/Ubuntu 16.04 LTS amd64
└─sdb2   8:18   1   2,3M  0 part
sr0     11:0    1  1024M  0 rom 



Her er det måske interessant hvad der står her:

Kode: Vælg alt

thoj@thoj-Precision-M4800:~$ sudo partprobe 
Warning: Enhedens beskriver påstår at den fysiske blokstørrelse er 2048 byte, men Linux påstår at den er 512 byte.



Og enheden er stadig ikke ændret. ,,,, :| ?

Jeg har læst at der er bøvl især med nogle Kingston USB-penne ... men jeg synes problemet har ramt mine USB nøgler bredt ...
Forfatter til Ubuntuguiden: http://www.vidas.dk/guides/ubuntuguiden.html

Kører LTS udgaverne.

"It's always easy if you know how to do it."
lath
Indlæg: 5095
Tilmeldt: 27. apr 2008, 02:16
IRC nickname: lars_t_h
Geografisk sted: Fyn

Re: Ubuntu 16.04 USB persistens

Indlæg af lath »

thj01 skrev:@lath

Det som er underligt er, at USB disken virkede fint til at installere Ubuntu 16.04 fra.

Mine USB diske brokker sig kun når det bliver lavet fra ubuntu. Det kører fint hvis jeg anvender server eller SystemrescueCD ...

Her er hvad der sker på 16.04 (har lige installeret og konfigureret her til formiddag :)

...

Kommando (m for hjælp): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Enheden eller ressourcen optaget

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

thoj@thoj-Precision-M4800:~$ sudo partprobe
Warning: Enhedens beskriver påstår at den fysiske blokstørrelse er 2048 byte, men Linux påstår at den er 512 byte.
thoj@thoj-Precision-M4800:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 477G 0 disk
├─sda1 8:1 0 160,6G 0 part /
├─sda5 8:5 0 15,3G 0 part [SWAP]
└─sda6 8:6 0 301,1G 0 part /data
sdb 8:16 1 3,8G 0 disk
├─sdb1 8:17 1 1,4G 0 part /media/thoj/Ubuntu 16.04 LTS amd64
└─sdb2 8:18 1 2,3M 0 part
sr0 11:0 1 1024M 0 rom
[/code]


Her er det måske interessant hvad der står her:

Kode: Vælg alt

thoj@thoj-Precision-M4800:~$ sudo partprobe 
[b]Warning: Enhedens beskriver påstår at den fysiske blokstørrelse er 2048 byte, men Linux påstår at den er 512 byte[/b].
[/b]

Og enheden er stadig ikke ændret. ,,,, :| ?

Jeg har læst at der er bøvl især med nogle Kingston USB-penne ... men jeg synes problemet har ramt mine USB nøgler bredt ...


Umiddelbart efter at et block device bliver kendt af kernen, så vil kernen hente de første 512 bytes for at afgøre indholdet af en partition tabel, det vil sige hvilke filsystemer der er på block devicet, incl. ingen filsystemer.

Jeg ved så ikke hvorfor at der går ged i det for kernen, når det er 2048 bytes, men det kan være at den buffer der bruger til partition tabellen kun har plads til 512 bytes.
Måske kan det fikses ved at lave noget ekstra med fdisk, eller parted/gparted eller lignede programmer, så sektor størrelsen er på det som kernen forventer: 512 bytes.

fdisk skriver godt om sektor størrelser p å512 bytes, men om det så er det der også er sket i virkeligheden er måske ikke sandt.
Lige nu er jeg kommet i tanke om at fdisk og lignende gamle programmer ikke kan håndtere GPT partition tabeller.
fdsik skriver godt nok om en DOS partition tabel, men jeg mener at GPT har en DOS partition tabel før GPT partition tabellen af hensyn til fdisk og lignede gamle programmer.

/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
AJenbo
Admin
Indlæg: 20878
Tilmeldt: 15. nov 2009, 15:04
IRC nickname: AJenbo
Geografisk sted: Vanløse, København

Re: Ubuntu 16.04 USB persistens

Indlæg af AJenbo »

Det er blokstørrelse og ikke partition tabellen den rapporteres som havende en inkonsistente størrelse.

fdisk kan godt gendkende når der er tale om en GPT partition, men springer fra med en advarsel om at den ikke understøtter disse.
Claus Henriksen
Forfatter
Indlæg: 794
Tilmeldt: 21. jan 2007, 17:45
Geografisk sted: Christianshavn

Re: Ubuntu 16.04 USB persistens

Indlæg af Claus Henriksen »

Claus Henriksen skrev:http://manpages.ubuntu.com/manpages/xenial/man5/persistence.conf.5.html

1. Lav en partition på nøglen ved at formindske størrelsen på din installcd partition og derefter lave en ext4 partition med labelen der hedder persistence
2. Lav en ny fil på denne nye partition med filnavnet persistence.conf
3. Denne fil skal have linjen
/ union

Har kun prøvet dette på Debian men det ser ud (manual siden ovenfor) som om det også burde virke på Xenial.

Nå. Det virker kun i Debian har jeg desværre konstateret. Til gengæld virker det når man kalder ext4 partitionen casper-rw og propper persistent ind i boot linjen. Ingen persistence.conf nødvendig.
Claus Gårde Henriksen / Jeg bruger ikke Ubuntu / Debian Stable 12