AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1181854
Accepted
sudodus
sudodus
Asked: 2019-10-19 03:12:42 +0800 CST2019-10-19 03:12:42 +0800 CST 2019-10-19 03:12:42 +0800 CST

Como é mais fácil criar uma unidade ao vivo persistente com o Ubuntu 19.10?

  • 772

Live drive persistente com uma partição para persistência

Existem alguns sites que descrevem

  • novas ferramentas
  • novos recursos em [novas versões de] ferramentas antigas

que pode criar uma unidade ao vivo persistente a partir de um arquivo iso com o Ubuntu 19.10 e os sabores correspondentes da família Ubuntu.

  • Por que e como funciona?
  • Qual é a diferença dos métodos anteriores para unidades ao vivo persistentes?
  • Live não é o padrão para uma unidade clonada?
boot live-usb partitioning persistence
  • 3 3 respostas
  • 21743 Views

3 respostas

  • Voted
  1. Best Answer
    sudodus
    2019-10-19T03:23:36+08:002019-10-19T03:23:36+08:00

    Live drive persistente com uma partição para persistência

    Sim, existem alguns sites que descrevem novas ferramentas e novos recursos em [novas versões de] ferramentas antigas que podem criar uma unidade ao vivo persistente a partir de um arquivo iso com o Ubuntu 19.10 e as versões correspondentes da família Ubuntu.

    • Um novo recurso ou bug corrigido ('solicitação de recurso' ou 'correção de bug' de acordo com este link ) torna possível usar uma partição para persistência, ao inicializar diretamente de uma cópia clonada ou extraída do arquivo iso.

    Isso torna muito mais fácil criar uma unidade ao vivo com uma partição para persistência com o Ubuntu 19.10.

    • Nas versões anteriores do Ubuntu era possível usar um arquivo em um sistema de arquivos FAT32 para persistência. Seu tamanho é limitado a 4 GiB. Foi possível inicializar via grub em uma partição separada (do conteúdo do arquivo iso) e usar uma partição para persistência. Mas isso é mais complicado, portanto, não é adequado para métodos manuais.

    • Nas versões 19.10 e futuras, o tamanho de uma partição para persistência é limitado apenas pelo tamanho da unidade (pendrive USB, SSD, HDD, cartão de memória).

    • Os arquivos iso ao vivo do Debian 10 também têm esse recurso e podem ser usados ​​para criar unidades ao vivo persistentes com uma partição para persistência.

    • Novidade mais recente: No Focal Fossa em desenvolvimento, a ser lançado como 20.04 LTS, o rótulo padrão da partição para persistência é alterado de casper-rwpara writable. Isso é implementado na mkusb-plugversão 2.5.5 (que é empacotada com o mkusb versão 12.4.3 no PPA).

    Ferramentas

    Ubuntu e Debian

    • mkusb - funciona com todas as versões atuais do Ubuntu

    Se você executa o Ubuntu live padrão , você precisa de uma instrução extra para obter o repositório Universe. (Kubuntu, Lubuntu ... Xubuntu tem o repositório Universe ativado automaticamente.)

        sudo add-apt-repository universe  # only for standard Ubuntu
    
        sudo add-apt-repository ppa:mkusb/ppa  # and press Enter
        sudo apt-get update
        sudo apt-get install mkusb mkusb-nox usb-pack-efi
    

    insira a descrição da imagem aqui

    • mkusb-minp - pequeno script de shell autônomo que pode usar esse novo recurso no Ubuntu 19.10. Funciona com o Debian 10 também.

    Por favor, leia os avisos quando você tentar versões mais antigas ou re-spins (distros baseadas no Ubuntu)

    Começo do diálogo: insira a descrição da imagem aqui

    Fim do diálogo: insira a descrição da imagem aqui

    • mkusb-plug - pequeno conjunto de scripts de shell que podem usar esse novo recurso no Ubuntu 19.10. Funciona com o Debian 10 também. Acho que você achará as coisas mais fáceis com esta ferramenta nova e muito segura com uma interface gráfica de usuário.

    insira a descrição da imagem aqui

    insira a descrição da imagem aqui

    insira a descrição da imagem aqui

    janelas

    • Atualização: Rufus - uma ferramenta bem conhecida que pode usar esse novo recurso no Ubuntu 19.10. Certifique-se de usar a versão atual (Rufus 3.9 ou mais recente),

    • funciona bem para criar unidades somente ao vivo com todas as versões atuais do Ubuntu,

    • pode criar unidades ao vivo persistentes com o Ubuntu 19.10 e versões futuras. Por favor, atualize para a versão 3.9 (ou mais recente), que cria um bom ext3sistema de arquivos e pode fazer boas unidades ao vivo persistentes.

    • Por favor, leia o changelog no site e os avisos (janelas pop-up), eles podem ajudá-lo a evitar erros graves.

    • Edit: Rufus 3.9 chegou :-)

      insira a descrição da imagem aqui

    • Método simples onde o arquivo iso é editado antes da clonagem

    Este novo recurso no Ubuntu 19.10 pode ser usado também no Windows,

    • Use HxD (um editor binário) para editar o arquivo iso para substituir duas opções de inicialização cosméticas 'quiet splash' por 'persistent' (substitua 12 caracteres por 12 caracteres)

    • Use o Win32 Disk Imager para clonar o arquivo iso editado

    • Na primeira vez que a unidade clonada for inicializada, o sistema Ubuntu criará uma casper-rwpartição com um ext4sistema de arquivos automaticamente . Simples e robusto!

    • Há descrições detalhadas nestes links:

      • wiki.ubuntu.com/Win32DiskImager/iso2usb/persistent

      insira a descrição da imagem aqui

      • wiki.ubuntu.com/Win32DiskImager/iso2usb

      insira a descrição da imagem aqui

    MacOS e Windows e Linux

    • Unetbootin - você precisa criar umacasper-rw partição para persistência manualmente e remover ou renomear ocasper-rwarquivo

    Veja este link descrevendo como adicionar uma partição persistente a um USB ativo/persistente do UNetbootin (Ubuntu 19.10+)

    Please notice 'Space used to preserve files across reboots ...'
    
    [![enter image description here][10]][10]
    
    • Arquivo de imagem compactado

    Você pode extrair e clonar um arquivo de imagem compactado diretamente de acordo com o link a seguir,

    Xubuntu Core 20.04 LTS com mkusb 12.4.5 (mkusb-dus e mkusb-plug)

    Isso funciona em todos os sistemas operacionais em que você

    • uma ferramenta que pode extrair um arquivo compactado comxz
    • uma ferramenta de clonagem

    . insira a descrição da imagem aqui

    Método manual

    Você precisa apenas de algumas etapas manuais para criar uma unidade ao vivo persistente com uma partição para persistência, quando estiver executando o Ubuntu.

    • Edite o arquivo iso para substituir quiet splashpor persistent . Sim, você pode editar o arquivo iso binário e substituir 12 caracteres por 12 outros caracteres e enviar a saída para o dispositivo de destino (geralmente um pendrive USB). sedpode fazer isso.

    • Crie uma partição 'atrás' da cópia atualizada do arquivo iso editado. fdiskpode fazer isso.

    • Crie um ext2sistema de arquivos nesta partição e coloque o rótulo casper-rw nesta partição. mkfs.ext2pode fazer isso.

    • Lave os tampões. syncpode fazer isso.

    Isso é o que mkusb-minpestá fazendo, além de muitas verificações, que envolvem um cinto de segurança ao redor do processo. Em outras palavras, você obtém ajuda para gravar no dispositivo de destino correto e recebe avisos quando pode haver problemas.

    Você pode fazer isso sozinho e sentir cada passo, ou pode ler o código do shellscript mkusb-minpe entender os detalhes.

    Observe que eu uso duse seleciono 'Clonagem' no exemplo a seguir. Você pode usar outra ferramenta de clonagem, mas se usar uma ferramenta simples como dd, verifique se está clonando para o dispositivo atual e se todas as partições desse dispositivo estão desmontadas.

    strings lubuntu-19.10-desktop-amd64.iso |grep 'quiet splash'  # check that 'quiet splash' is there to be replaced by 'persistent  ' (12 characters)
    sed 's/quiet splash/persistent  /' lubuntu-19.10-desktop-amd64.iso > persistent-lubuntu-19.10-desktop-amd64.iso  # yes, sed works with binary files
    ls -l *19.10*  # check that the size is the same
    strings persistent-lubuntu-19.10-desktop-amd64.iso |grep 'persistent  '  # check that 'persistent' is there now
    dus persistent-lubuntu-19.10-desktop-amd64.iso  # I use mkusb-dus, you can use the Ubuntu Startup Disk Creator or another cloning tool
    sudo lsblk -fm  # It is important to check the device letter of the target drive (the USB drive, that you want persistent live
    sudo fdisk /dev/sdx  # x is the device letter of the target drive, please double-check that you have the correct letter
    n           # new partition
    p           # primary
    <Return>    # default: 3
    <Return>    # default: next free sector
    <Return>    # default: last addressable sector
    w           # write and quit
    sudo lsblk -fm  # check that things look good and verify that partition #3 is the correct partition to be used to store the persistent data
    sudo mkfs.ext2 -L casper-rw /dev/sdx3  # put label and file system into the partition of persistence
    sudo lsblk -fm  # check that things look good
    sync  # flush the buffers and wait for prompt
    

    Links

    • Unidade USB clonada com Lubuntu Eoan pode ser persistente ao vivo
    • Método desenvolvido por F. Hauri que funciona para o Debian 10

    Existem métodos manuais gerais que podem ser facilmente modificados, desde o uso de um arquivo para persistência até uma partição para persistência. Veja o seguinte link,

    • help.ubuntu.com/community/Installation/iso2usb/diy

    Uma unidade ao vivo clonada do Ubuntu 19.10+ não é apenas ao vivo

    Live não é o padrão para uma unidade clonada?

    Bem, costumava ser, e ainda está ao vivo, mas não ao vivo apenas em 19.10.

    Se você deseja fazer uma unidade puramente ao vivo, onde nada será preservado após o desligamento e a reinicialização, você pode

    • use mkusb-minp com a opção -nou mkusb-plug e selecione 'No-persistent live drive'.

    • ou modifique manualmente as opções de inicialização integradas para substituir 'quiet splash' por 'nopersistent'

    Link

    • How can I get a live-only drive with Ubuntu 19.10 and newer versions?
    • 21
  2. Martian2020
    2021-10-30T08:14:47+08:002021-10-30T08:14:47+08:00

    I wrote a bash script (one liner) to edit live USB disk to change "quiet splash" to "persistent " based on the answer by @sudodus.

    Disclaimer: it worked on my system, use at your own risk. It is for bash, may not work on other shells w/out edit.

    After boot from USB extra partition writable was created w/out my intervention for overlay for persistence, if not fdisk can be used.

    First variant of code is not efficient as it starts search with grep all over after each edit; but it can be stopped via ctrl-c when some changes are made.

    device_to_edit=/dev/sdb; string_to_edit="quiet splas\x68"; new_string="persistent  "; block_size=512; ed_count=0; to_end=""; if [ ! ${#string_to_edit} -eq ${#new_string} ]; then echo -e "\n Suspect a danger as strings lengths not same"; elif [ $block_size -lt ${#new_string} ]; then echo -e "\n\ Suspect a danger as block size too small for string length"; elif file_size=$(lsblk -b --output PATH,SIZE | grep "$device_to_edit " | sed -E 's/.* ([0-9]{1,})/\1/'); [ $((file_size/1024/1024/1024)) -gt 20 ]; then echo -e "\n Suspect a danger as device size is large"; else while [ -z $to_end ]; do offset_to_edit=$(sudo grep --only-matching --byte-offset --max-count=1 --text --perl-regexp "$string_to_edit" $device_to_edit | awk --field-separator ":" '{ FS = "0" ; print $1 ; exit }'); if [ -z "$offset_to_edit" ]; then echo -e "\n end of file is reached" ; to_end="yes" ; else block_to_edit=$(($offset_to_edit/$block_size)) ; sudo dd if=/$device_to_edit count=2 skip=$block_to_edit bs=$block_size | sed "s/$string_to_edit/$new_string/" | sudo dd conv=notrunc of=$device_to_edit count=2 seek=$block_to_edit bs=$block_size; echo "blocks $block_to_edit and next edited (blocks start with 0)"; ((ed_count++)) ; fi ; done ; echo -e "\n$ed_count editions made"; fi
    

    In second variant of code grep is done only one time, but grep goes through complete file (e.g. block device, USB) which can take significant time before any editing (on my system it took ~ 15 minutes for 8Gb drive, I added date for the sake of that curiosity):

    date; device_to_edit=/dev/sdb; string_to_edit="quiet splash"; new_string="persistent  "; block_size=512; ed_count=0; to_end=""; if [ ! ${#string_to_edit} -eq ${#new_string} ]; then echo -e "\n Suspect a danger as strings lengths not same"; elif [ $block_size -lt ${#new_string} ]; then echo -e "\n\ Suspect a danger as block size too small for string length"; elif file_size=$(lsblk -b --output PATH,SIZE | grep "$device_to_edit " | sed -E 's/.* ([0-9]{1,})/\1/'); [ $((file_size/1024/1024/1024)) -gt 20 ]; then echo -e "\n Suspect a danger as device size is large"; else sudo grep --only-matching --byte-offset --text --perl-regexp "$string_to_edit" $device_to_edit | awk --field-separator ":" '{ FS = ":" ; print $1 }' | { IFS=$'\n' read -d '' -a offsets_to_edit ; for offset in ${offsets_to_edit[@]}; do block_to_edit=$(($offset/$block_size)) ; sudo dd if=/$device_to_edit count=2 skip=$block_to_edit bs=$block_size | sed "s/$string_to_edit/$new_string/" | sudo dd conv=notrunc of=$device_to_edit count=2 seek=$block_to_edit bs=$block_size; echo "blocks $block_to_edit and next edited (blocks start with 0)"; ((ed_count++)); done; echo -e "\n$ed_count editions made"; } ; fi; date
    

    Notes:

    Meaning of the scripts parameters and syntax could be understood by reading man bash, man awk, man sed, info '(coreutils) dd invocation', help read. Why (list) / { list; } needed in pipe is explained in https://stackoverflow.com/questions/2746553/read-values-into-a-shell-variable-from-a-pipe ("A pipeline may spawn a subshell, where the environment is inherited by value, not by reference"), working with two blocks is needed in case string starts in one block and ends in next one.

    The scrips include three safety checks: lengths of original and replacement strings are same, block size is sufficiently large, device size is not larger then 20Gb (against accidental edit of main drive, need to be edited for larger flash storage, code is $((file_size/1024/1024/1024)) -gt 20).

    Existem algumas redundâncias nos scripts, ou seja , FS = ":" ;em awk, por algum motivo o separador de campos não funcionou como eu esperava e tive que adicionar --field-separator ":", também grep --perl-regexpé necessário usar \xaavalores hexadecimais por exemplo, mas esta edição não os possui.

    • 4
  3. C.S.Cameron
    2019-10-23T23:22:27+08:002019-10-23T23:22:27+08:00

    Rufus is the easiest tool for making a persistent live drive with Ubuntu 19.10

    (But not the necessarily the best).

    For making a Persistent drive not limited to 4GB in Ubuntu, mkusb is easiest, (and best), to use. (What else is there)?

    For making a Persistent drive not limited to 4GB in Windows 10, Rufus seems to currently be the easiest tool to use.

    That does not make it the best tool though.

    I did some simple experiments comparing the latest version of Rufus and mkusb:

    First I wiped a 4GB USB and then ran Rufus in Windows 10, rebooted, and had a look ar the /casper-rw/upper/ folder with Disk Usage Analyzer.

    Then I deleted the casper-rw partition and made a new one.

    I rebooted the drive a couple times, without making any changes or saving anything, and again had a look at the repopulated Persistent partition with DUA.

    I again wiped the drive and created another Persistent USB with mkusb, rebooted and had another look with DUA.

    Again I deleted the casper-rw partition and made a new one.

    I rebooted the drive a couple times, without making any changes, and again had a look at the repopulated Persistent partition with DUA.

    As can be seen from the attached charts, mkusb seems to be superior in the use of disk space, and grub 2 is more straight forward than syslinux.

    USB persistente feito com Rufus

    Persistent USB made with Rufus

    USB persistente feito com Rufus repovoado

    Persistent USB made with Rufus with Repopulated casper-rw partition

    USB persistente feito com mkusb

    Persistent USB made with mkusb

    USB persistente feito com mkusb repovoado

    Persistent USB made with mkusb with Repopulated casper-rw partition

    Edit: following the trail of persistent disk space usage.

    I took a look at disk space usage in the casper-rw partition of Rufus and mkusb freshly made persistent USB's

    pasta Rufus var

    Rufus var folder

    conteúdo da pasta Rufus snaps

    Contents of Rufus snaps folder

    ![mkusb var pasta

    mkusb var folder

    ![conteúdo da pasta de snaps mkusb

    Contents of mkusb snaps folder

    Data not yet confirmed

    Edit: Rufus 3.9.1624

    Ran Disk Usage Analyzer with the latest version of Rufus, Results were close to Rufus 3.8. It apears that mkusb still makes a more space efficient Persistent drive.

    insira a descrição da imagem aqui Persistent USB made with Rufus 3.9 insira a descrição da imagem aqui Rufus 3.9 var folder

    Again, Data and methodology has not been confirmed.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve