web-dev-qa-db-ja.com

端末のみを使用してBIOSの永続性を備えたライブUbuntu USBドライブを作成する方法

ライブのUbuntu USBスティックから起動し、そのUSBスティックでrsyncスクリプトを永続的に使用して、増分スナップショットを作成したい(backups)メインのDebianシステムを2台目のハードドライブに接続します。

永続的なライブUbuntu USBスティックを作成するのは非常に簡単だと思うかもしれませんが、ほとんどのライブUSBメーカーは永続化を許可しておらず、それは機能していません。これには、欠落している依存関係をローカルでコンパイルしてデバッグした後でも、UNetBootinが含まれます。ですから、必要なときに理解してデバッグできる、シンプルで端末専用のソリューションが必要です。

Isoからの単純なdd、次にcasper-rwファイルを追加する方法では、非標準のefiパーティションイメージによって混乱するパーティションツールに関する問題がありました。 ( ref

UNetBootinのようないくつかのソリューションは動作に近づきましたが、ルートシェルを取得するためにSudo -sを実行しようとすると、クラッシュしてダンプし、ライブUSBイメージが破壊されました。

3
Elliptical view

解決策の大部分(下記)は this すばらしい記事から来ています。これは動作に近いものですが、いくつかの場所でいくつかの更新が必要なため、完全ではありません。しかし、手順の説明ではより完全であるため、これをご覧になることをお勧めします。

これは私のBIOSベースのラップトップ用です。これはEUFIブートマシンでは機能しない可能性があります。

TIPS:

  • 上記の記事が示すように、grub構成ファイルを作成するのではなく、以下に示すように作成します。

  • 最終的に以下で動作するようになったら、時間の経過とともにファイルシステムが予期せずいっぱいになることがわかります。 Ubuntuがapt-get updateを静かに実行しているため、これが発生することが最終的にわかりました。これにより、すべてのファイルスペースがいっぱいになり、警告メッセージが表示されます。 (何が起こっているのかを理解するのに数年かかりました。)

最初の修正はapt-get cleanを実行してaptキャッシュをダンプすることでしたが、これは根本的な問題を実際には解決しません。それから、wi-fiを自動で無効にできないように単純に無効にしてみました。これは私に最適です!今、私のスティックは問題なく長持ちします。


動作するように慎重にテストされた手順:

1。ダウンロードUbuntu 16.04 ISOイメージ ここ

2。 set以下で使用するいくつかの変数:

iso=/path/to/isoimage #e.g. iso=~/Downloads/ubuntu-16.04-desktop-AMD64.iso

s=/mnt/isoimage   #Source mount point for ISO files (via loop file system)
t=/media/USBRoot  #Target mount point for USB files in partition #1

!!次に、ハードディスクを誤って上書きする可能性があるため、この次の手順で、ハードドライブではなくUSBスティックを正しく指すように慎重に注意してください。(ヒント: lsblkなど)

dev=/dev/sd?  #set the "?" to your USB drive letter, e.g. /dev/sdb

3。プラグインおよびオプションでeraseパーティション分割が失敗した場合は、eraseをお勧めします。 (USBデバイスにISOイメージをdd 'する前に、fdiskを再び正常に動作させる前に、それをゼロにする必要がありました。)

Sudo dd if=/dev/zero of=$dev  #bs=2048 is optional and doesn't seem to matter

完了すると、次のようなメッセージが表示されます。

dd: writing to ‘/dev/sdb’: No space left on device
30326785+0 records in
30326784+0 records out
15527313408 bytes (16 GB) copied, 4099.2 s, 3.8 MB/s

消去ステップは、クイックフォーマットが動作しない場合があることがわかったためです。確かではありませんが、パーティションマップの2番目のコピーなどが見つかっており、パーティションソフトウェアを混乱させていると思われます。したがって、開始する前にすべてのゼロをUSBスティックに書き込むことで、確実に新しい状態から始められるように思えます。しかし、もちろん、完了するには長い時間がかかります。

4。パーティションを作成します。パーティションツールを使用して、msdosタイプのパーティションマップをusbスティックに配置し、次のように2つのパーティションに分割します。

パーティション1)casper-rwファイルを介したカーネル、ramdisk、grub、および永続性のVFAT32パーティション。このために残りのスペースをすべて使用します。

パーティション2)linux isoイメージのブート可能パーティション。サイズを約2Gにします(.isoファイルのサイズが大きいため)。

#2パーティションのサイズは約2gである必要があるため、ドライブのサイズからこれを減算し、512で除算してセクターの#1パーティションのサイズを取得します。私の場合、16GB-2GB = 14GB/512 =約27343750セクターです。

ヒント:デバイスがマウントされている場合は、ここでアンマウントします。fdiskを完了すると、エラーが発生します。グラフィカルなアンマウントボタンを使用しないでください。デバイスを見つけられないように見えるので(USBドライブを取り外してから再び接続するまで)、次のように端末コマンドを使用します:

?質問:ブートパーティションを最初のパーティションとして、これらのパーティションをスワップできない理由がわかりません。しかし、それが価値があるもののために、私はそれを試してみましたが、動作させることができませんでした。

Sudo umount ${dev}1
Sudo umount ${dev}2

方法は次のとおりです:fdisk、parted、gparted、またはcfdiskのいずれかを使用できますが、私はfdiskが好きです。

Sudo fdisk $dev
o                             [create partition map], and then

n (p) (1) (2048) 27343750     [new partition #1] 
t c                           [change partition type to type c, or W95 FAT32], and

n (p) (2) (default) (default) [new partition #2]
t 2 83                        [type 83 or linux], then
a (2)                         [set [toggle] the bootable flag], and

p                             [check new table], and finally 

次のようになります。

Disk /dev/sdb: 14.5 GiB, 15527313408 bytes, 30326784 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: 0xa42995f9

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sdb1           2048 27343750 27341703   13G  c W95 FAT32 (LBA)
/dev/sdb2  *    27344896 30326783  2981888  1.4G 83 Linux

次にこれを行います:

w                         [write the partition table to the usb drive]

次のような応答が返されます。

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

または、最初にアンマウントするのを忘れた場合、次のようになります:

The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

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).

その場合、単純に戻って上記のようにアンマウントし、fdiskを再度実行してwを押すだけで完了です。

5。 ISOイメージを2番目のパーティションに書き込みます。ここにブロックサイズパラメーターを含めるかどうかに苦労しました(例:bs = 2048)。それは重要ではないか、ほとんど効果がないようです。また、このパーティションはフォーマットする必要がないことに注意してください。ISOはパーティションに直接コピーされると効果的にフォーマットされます。

Sudo dd if=$iso of=${dev}2

6。最初のパーティションをフォーマットします。 、彼はこれをVFAT32(つまり、FAT32の長いファイル名バージョン)でフォーマットします。これは、任意のマシンでそのパーティションを簡単に読み取れるようにすることです(つまり、移植性)。 [ext3も機能するかどうかを確認する予定であり、後でテストを実行してこれを更新する予定です。]

Sudo mkfs.vfat -F 32 -c ${dev}1   # for vFAT32 file system

7。パーティション#1をマウントして、ファイルをインストールできるようにします。

Sudo mkdir -p      $t
Sudo mount ${dev}1 $t

8。 grubをusbスティックの最初のセクターとパーティション#1のルートディレクトリにインストールします。

Sudo grub-install --no-floppy --root-directory=$t $dev

9。カーネルファイルとRAMディスクファイルをコピーします。(注、これは記事から改訂されています。カーネルは* .efiバージョンとして提供されています(ただし、まだカーネルです)、およびinitrd(すべてのパッケージを含むRAMディスク)は、gzではなくlzで圧縮されています。まず、これらの2つのファイルを取得するイメージファイルを(ループデバイスとして)マウントします。

Sudo mkdir -p           $s
Sudo mount -o loop $iso $s
Sudo cp                 $s/casper/{vmlinuz.efi,initrd.lz} $t/boot/

10。永続ファイルシステムを保持するファイルを作成します。必要に応じてサイズを調整します。これは1024x1mb = 1gbに設定されます。 casper-rwファイル内ではext3ファイルシステムであることに注意してください。名前casper-rwは魔法なので、変更しないでください。

Sudo dd if=/dev/zero of=$t/casper-rw bs=1M count=1024  
Sudo mkfs.ext3 -F       $t/casper-rw     #takes a long time

11。単純なgrub構成ファイルを作成します。grubが見つけられるように、ファイル名の拡張子をconfではなく(おそらく新しい?)cfgにしてください( ref )。お気に入りのエディターを使用するか、以下を使用します。

Sudo nano $t/boot/grub/grub.cfg

12。次のgrubコマンドを貼り付けます

*注:必要に応じて、echoを使用し、ここでさらにデバッグするために読むことができます。また、「ro」、「splash」、および「quiet」はオプションの(ただし推奨)カーネルオプションであり、ほとんどが自明の動作です。必要に応じてGRUB>プロンプトを使用する方法について、 this 非常に役立つ投稿を参照してください。これはGRUB 2.0ではなくGRUB 1.0であった可能性があるため、彼は。confファイルを持っていると推測しています。彼が働いていなかったコマンド。また、ルートはパーティション1(つまり、msdos1)であることに注意してください。

echo LOADING USB DRIVE
echo 
echo To continue press any key
echo To abort press ^-alt-delete
echo
read
echo Proceeding...

set default=0
set timeout=10
set title="Ubuntu (Live)"
set root=(hd0,msdos1)

linux /boot/vmlinuz.efi boot=casper file=/preseed/ubuntu.seed persistent ro splash quiet
echo vmlinuz.efi loaded

initrd /boot/initrd.lz
echo initrd.lz loaded
echo
echo Grub done. Booting...
boot

13。同期(推奨)およびクリーンアップ(オプション):

sync

Sudo umount $s;  Sudo rmdir  $s
Sudo umount $t;  Sudo rmdir  $t

14。新しいUSBドライブをバックアップします。

dd if = $ dev of =/your/backup/location#時間がかかります

後で復元するには、逆を使用します。

dd if =/your/backup/location of = $ dev#時間がかかります

15。再起動し、キーを押してUbuntu USBスティックを起動します。

16。バックアップスクリプトを追加します。これは、2台のラップトップを扱うインクリメンタルスクリプトです。最初にシステムについて慎重に確認し、必要に応じて調整します。 mybackupおよびハードリンクmyrestoreに名前を付けます(ln mybackup myrestore)。 chmod u+x my{backup,restore}で実行権限を設定します。 ./mybackupで実行します

#!/bin/bash

#Usage:
#
# mybackup                               - show list of current backups
# myrestore                              - ''
#
# mybackup  <machine> <BackupFolderName> - machine: love2d or sharon-pc
# myrestore <machine> <BackupFolderName> - by convention name is 'nn-descriptiveName' (so it sorts by date)


#################################################################
#################################################################

### PARTITIONS ######################
#Partition labels (also used for mount point folder names):
#  Note: use labels rather than UUID as they might be more controllable.
BackupDrive='Linux backup'              # USB backup drive (I removed space from 'name' & it removed it from 'label')
 BackupBase="$BackupDrive/Backups"      # Backup base folder directory & name
     SubDir="files"


### PARTITIONS LABEL HELP:
#lsblk -o +label        gives  (note older method was blkid, but this suggests we use lsblk):
#NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT                              LABEL
#sda      8:0    0 465.8G  0 disk
#├─sda1   8:1    0   199M  0 part                                         SYSTEM
#├─sda2   8:2    0 288.1G  0 part
#├─sda3   8:3    0     1K  0 part
#├─sda4   8:4    0  29.3G  0 part                                         Shared
#├─sda5   8:5    0  23.3G  0 part                                         d8root
#├─sda6   8:6    0 119.5G  0 part                                         d8home
#└─sda7   8:7    0   5.4G  0 part [SWAP]

#sdc      8:32   0   3.7T  0 disk
#├─sdc1   8:33   0   128M  0 part
#├─sdc2   8:34   0   2.7T  0 part /media/ubuntu/Seagate Backup Plus Drive Seagate Backup Plus Drive
#└─sdc3   8:35   0 976.6G  0 part                                         Linux backup



### MOUNTING 1of2 ######################
 Sudo umount "/mnt/$BackupDrive">& /dev/null    # --- cleanup from prior failed attempt:
 Sudo mkdir  "/mnt/$BackupDrive">& /dev/null; Sudo mount -L "$BackupDrive"      "/mnt/$BackupDrive" -o defaults,suid >& /dev/null #Allow to set user owner of files




########################################################################
### FUNCTIONS #################################################################

####################
function usage          { echo; echo "Usage: ${0##*/} [machine name: Love2d|Sharon-pc] [BackupFolderName]";echo;}

####################

####################
#If parameter just show dirs for that machine, else show for both
function myls {
 echo -n "'$1' existing backups:"
 if [ -d "$2" ]; then echo; ls -lFgG "$2" |grep -v ^total |grep ' [0-9][0-9]-' |sed 's/..................//'; else echo ' (none)'; fi;
}

##################
function currentbackups {
 if [ "$1" ]; then
        myls "$1"               "/mnt/$BackupBase/$1/$SubDir"
 else
        myls 'Love2d'           "/mnt/$BackupBase/Love2d/$SubDir"
        echo
        myls 'Sharon-pc'        "/mnt/$BackupBase/Sharon-pc/$SubDir"
        echo
 fi
}

###################
function badmachine     { echo "Machine type '$1' is invalid.";}

###################
function cleanup        {
 # echo "--- cleaning up --------------------------------------"
 Sudo umount "/mnt/$BackupDrive"
}

########################################################################
########################################################################


### CHECK INPUTS #######################################################
#Check if backup name paramter exists:
if [ $# = 0 ]; then usage;                                                                                                              cleanup; exit;     fi

if [ $# = 1 ]; then if [ "$1" != "Love2d" -a "$1" != "Sharon-pc" ]; then badmachine "$1"; usage; else usage; currentbackups "$1"; fi;                       cleanup; exit;     fi

if [ $# = 2 ]; then if [ "$1" != "Love2d" -a "$1" != "Sharon-pc" ]; then badmachine "$1"; usage;                                         cleanup; exit; fi; fi


### MOUNTING 2of2 ######################
if [ "$1" = 'Love2d' ]; then
    MyHome='d8home'             # Love2 Debian /home      partition name
    MyRoot='d8root'             # Love2 Debian /   (root) partition name
  MyShared='Shared'             # Love2 Debian Shared     partition name

 Sudo umount "/mnt/$MyRoot"     >& /dev/null    # --- cleanup from prior failed attempt:
 Sudo umount "/mnt/$MyHome"     >& /dev/null    #
 Sudo umount "/mnt/$MyShared"   >& /dev/null    #

 Sudo mkdir  "/mnt/$MyRoot"     >& /dev/null; Sudo mount -L "$MyRoot"           "/mnt/$MyRoot"                          >& /dev/null
 Sudo mkdir  "/mnt/$MyHome"     >& /dev/null; Sudo mount -L "$MyHome"           "/mnt/$MyHome"                          >& /dev/null
 Sudo mkdir  "/mnt/$MyShared"   >& /dev/null; Sudo mount -L "$MyShared"         "/mnt/$MyShared"                        >& /dev/null

else
#    MyHome='uhome'             # Love2 Ubuntu /home      partition name
#    MyRoot='uroot'             # Love2 Ubuntu /   (root) partition name

    MyHome='a41eaa3e-bd31-4ebc-86d4-cf8ed5f3e779'               # Love2 Ubuntu /home      partition name
    MyRoot='f3b7424c-0144-42a6-8488-62fbee94d245'               # Love2 Ubuntu /   (root) partition name


 Sudo umount "/mnt/$MyRoot"     >& /dev/null    # --- cleanup from prior failed attempt:
 Sudo umount "/mnt/$MyHome"     >& /dev/null    #

#Sudo mkdir  "/mnt/$MyRoot"     >& /dev/null; Sudo mount -L "$MyRoot"           "/mnt/$MyRoot"                          >& /dev/null
#Sudo mkdir  "/mnt/$MyHome"     >& /dev/null; Sudo mount -L "$MyHome"           "/mnt/$MyHome"                          >& /dev/null

 Sudo mkdir  "/mnt/$MyRoot"     >& /dev/null; Sudo mount -U "$MyRoot"           "/mnt/$MyRoot"                          >& /dev/null
 Sudo mkdir  "/mnt/$MyHome"     >& /dev/null; Sudo mount -U "$MyHome"           "/mnt/$MyHome"                          >& /dev/null
fi


#=================================================================
BackupDir="$BackupBase/$1/$SubDir/$2"   # /dir/BackupFolderName


#rSync stuff:
MyRsync="Sudo rsync -aAXv --delete"
RootExclude=" --exclude={\"/dev/*\",\"/lost+found\",\"/media/*\",\"/mnt/*\",\"/proc/*\",\"/run/*\",\"/sys/*\",\"/tmp/*\"}"
HomeExclude=" --exclude='*cache*'"      #this does not work

if [ "${0##*/}" = "mybackup" ]; then
echo backing up...
        Sudo mkdir -p "/mnt/$BackupDir/root"    # Making directories to save backup to
        Sudo mkdir -p "/mnt/$BackupDir/home"

        echo "--- Backing up:  / -----------------------------------"
        $MyRsync $RootExclude   "/mnt/$MyRoot/"                 "/mnt/$BackupDir/root/"
        echo "--- Backing up:  /home -------------------------------"

        $MyRsync $HomeExclude   "/mnt/$MyHome/"                 "/mnt/$BackupDir/home/"

   if [ "$MyShared" ]; then             #no shared partion on Sharon's machine
        Sudo mkdir -p "/mnt/$BackupDir/shared"
        echo "--- Backing up:  Shared ------------------------------"
        $MyRsync                "/mnt/$MyShared/"               "/mnt/$BackupDir/shared/"
   fi

else

        # Confirm
        read -p "YOU ARE ABOUT TO OVERWRITE YOUR PARTITIONS - CONFIRM (y/N)?" -n 1 -r; echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "Aborting.";exit; fi
        echo;
        read -p "DANGER!  Really overwrite your hard disk partitions? (y/N)?" -n 1 -r; echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "Aborting.";exit; fi

        echo "--- Restoring:   / -----------------------------------"
        $MyRsync                "/mnt/$BackupDir/root/"         "/mnt/$MyRoot"
        echo "--- Restoring:   /home -------------------------------"
        $MyRsync                "/mnt/$BackupDir/home/"         "/mnt/$MyHome"

   if [ "$MyShared" ]; then             #no shared partion on Sharon's machine
        echo "--- Restoring:   Shared ------------------------------"
        $MyRsync                "/mnt/$BackupDir/shared/"       "/mnt/$MyShared"
   fi

fi

cleanup
 Sudo umount "/mnt/$MyRoot"     ;Sudo rmdir "/mnt/$MyRoot"
 Sudo umount "/mnt/$MyHome"     ;Sudo rmdir "/mnt/$MyHome"

if [ "$MyShared" ]; then                #no shared partion on Sharon's machine
 Sudo umount "/mnt/$MyShared"   ;Sudo rmdir "/mnt/$MyShared"
fi

 echo "=== DONE. ============================================"

exit 0
5
Elliptical view

私たちは同じことをしていると思います。アイデアを交換し、お互いに助け合いましょう:-)

たぶん、唯一の違いは、私が以前に始めたことです。私の新しいツールを見てくださいdus、すぐに「mkusbバージョンに名前が変更されることを願っています12分。

dusは、禅メニューグラフィカルなデスクトップ環境とZenityが利用可能です。それ以外の場合は、ダイアログが利用可能な場合はdialog menusで動作し、そうでなければplain textユーザーインターフェイス、これはあなたが求めたものです(そして、早く返事がなかったので作った)。

dusはbashシェルスクリプトのセットで構成され、それらを読んで理解することを歓迎します彼らがどのように働くか。スクリプトは、ppa:mkusb/unstableまたはphillw.netから入手できます。詳細については、 this link および this link を参照してください。

次のテキストダンプは、plain text dialog(ターミナルへの入力およびターミナルからの出力)永続的なライブドライブを作成します。遅いUSB 2ペンドライブを使用しましたが、書き込み速度はわずか6 MB /秒です。 USB 2ポートでは適切なUSB 3ペンドライブで4〜5倍、USB 3ポートではさらに高くなります。

$ ssh sudodus@my_server
sudodus@my_server's password: 
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-45-generic i686)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 paket kan uppdateras.
0 uppdateringar är säkerhetsuppdateringar.

*** /dev/sda8 will be checked for errors at next reboot ***

sudodus@xenial32 ~ $ cd /media/multimed-2/test/mkmkusb/dus
sudodus@xenial32 /media/multimed-2/test/mkmkusb/dus $ dus lubuntu-16.04.1-desktop-AMD64.iso 
 dus 0.0.0 
[Sudo] password for sudodus: 
dus wants the program(s) 
mkusb-common 'to make a persistent live drive and to get a good GUI experience'
usb-pack-efi 'only to make a persistent live drive'
 Please install the corresponding package(s) 
Press Enter to continue, or wait 8 seconds 

 dus 0.0.0 - Cloning, live linux, windows / Persistent live
 ──────────────────────────────────────────────────────────────────────────────


             ┌──────Move between items with the arrow keys────────┐
             │                 - Do USB Stuff -                   │
             │       Welcome and Notice about Overwriting         │
             │ The target device will be completely overwritten   │
             │ ┌────────────────────────────────────────────────┐ │
             │ │c  Cloning iso file, [compressed] image file or │ │
             │ │l  'Live-only' or linux installer from iso file │ │
             │ │p  'Persistent live' - only Debian and Ubuntu   │ │
             │ │w  extracting Windows installer                 │ │
             │ │q  Quit                                         │ │
             │ └────────────────────────────────────────────────┘ │
             │                                                    │
             │                                                    │
             │                                                    │
             │                                                    │
             ├────────────────────────────────────────────────────┤
             │             <  OK  >       <Avbryt>                │
             └────────────────────────────────────────────────────┘

## oops - I have dialog installed - so I had better use the option -t ##
##        to make a demo with the plain text interface                ##

clean if necessary and return
sudodus@xenial32 /media/multimed-2/test/mkmkusb/dus $ dus -t lubuntu-16.04.1-desktop-AMD64.iso 
 dus 0.0.0 
dus wants the program(s) 
mkusb-common 'to make a persistent live drive and to get a good GUI experience'
usb-pack-efi 'only to make a persistent live drive'
 Please install the corresponding package(s) 
Press Enter to continue, or wait 8 seconds 
+------------------------  Do USB Stuff  -------------------------+
|              Welcome and Notice about Overwriting               |
|        The target device will be completely overwritten         |
+------------------------  quit with (q)  ------------------------+
Cloning,live-only,windows / Persistent-live / Quit (c/l/p/w/q) p
Drive that contains source file: /dev/sdc
Live drive, that is booted from: /dev/sda
-------------------------------------------------------------------------------
Available drives (mass storage devices)
Dev  Target name/model              Size   Bus  Kind of device    
sdd  SanDisk_Cruzer                  15G   usb  USB or memory card
Example: add 'sdx':  /dev/sdx
Select target device /dev/sdd
p_target: target=/dev/sdd
Select 'MSDOS' partition table - default GPT?               (y/N) 
Select 'usb-pack-efi' - default grub from iso file?         (y/N) 
Select 'download and install' security update - default NO? (y/N) 
Enter 'percentage' for persistence - default 50  (enter: 1 - 100) 75
settings=
percent=75
Prepare  persistent live  system from
'lubuntu-16.04.1-desktop-AMD64.iso'
to the target device (drive) '/dev/sdd'
MODEL            NAME   FSTYPE  LABEL                      SIZE
Cruzer           sdd                                        15G
                 ├─sdd1 ntfs    usbdata                    3,5G
                 ├─sdd2                                      1M
                 ├─sdd3 vfat    lub1604164                 122M
                 ├─sdd4 iso9660 Lubuntu 16.04.1 LTS AMD64  874M
                 └─sdd5 ext4    casper-rw                 10,5G
 Final checkpoint, go ahead? (g/N) g
lubuntu-16.04.1-desktop-AMD64.iso
/dev/sdd
75
settings=
-----
live system or temporary superuser permissions
lubuntu-16.04.1-desktop-AMD64.iso
/dev/sdd
75
settings=
source=lubuntu-16.04.1-desktop-AMD64.iso
target=/dev/sdd
percent=75
msdos=false
upefi=false
dni=false
source=lubuntu-16.04.1-desktop-AMD64.iso
ls -l  lubuntu-16.04.1-desktop-AMD64.iso
lrwxrwxrwx 1 olle olle 67 okt 22 21:44 lubuntu-16.04.1-desktop-AMD64.iso -> /media/multimed-2/CD/ubuntu/16.04/lubuntu-16.04.1-desktop-AMD64.iso
---------------------------------------------------------------------------
start [dus-persistent 0.0.0] @ 2016-11-17 19:15:23
---------------------------------------------------------------------------
Making a USB boot drive or memory card ..........................
ubuntu
grub_n_iso "$source" "$target" "$result"
grub_n_iso lubuntu-16.04.1-desktop-AMD64.iso /dev/sdd 
***** tu=/dev/sdd ****************************************************
selected target partition table: 'gpt'
mount: /dev/loop0 is write-protected, mounting read-only
 Lubuntu 16.04.1 LTS "Xenial Xerus" - Release AMD64 
mount: /dev/loop0 is write-protected, mounting read-only
select_boot_system: usb-pack_efi is available
select_boot_system: usb-pack_efi: using variable 'upefi=false'
'lubuntu-16.04.1-desktop-AMD64.iso' is identified as the source ISO file
<pre>
MODEL            NAME   FSTYPE  LABEL                     MOUNTPOINT  SIZE
Cruzer           sdd                                                   15G
                 |-sdd1 ntfs    usbdata                               3,5G
                 |-sdd2                                                 1M
                 |-sdd3 vfat    lub1604164                            122M
                 |-sdd4 iso9660 Lubuntu 16.04.1 LTS AMD64             874M
                 `-sdd5 ext4    casper-rw                            10,5G
</pre>
Using the file '/usr/share/mkusb/grub.cfg'
Clean for a GUID partition table
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): 
Command (? for help): 
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): OK; writing new GUID partition table (GPT) to /dev/sdd.
The operation has completed successfully.
Wipe the first megabyte (mibibyte) to get a clean boot area
1024+0 records in
1024+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,00227566 s, 461 MB/s
Wait 5 seconds and a little more ...
---------------------------------------------------------------------------
 Selected percentage of remaining space for persistence = 75 
---------------------------------------------------------------------------

preparing /dev/sdd3  ------------------------------------------------
1024+0 records in
1024+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,290228 s, 3,6 MB/s
umount: /dev/sdd3: not mounted
mkfs.fat 3.0.28 (2015-05-16)
/dev/sdd3 has 64 heads and 32 sectors per track,
hidden sectors 0x1000;
logical sector size is 512,
using 0xf8 media descriptor, with 249856 sectors;
drive number 0x80;
filesystem has 2 32-bit FATs and 1 sector per cluster.
FAT size is 1922 sectors, and provides 245980 clusters.
There are 32 reserved sectors.
Volume ID is 3cfbdfa9, no volume label.

preparing /dev/sdd1  ------------------------------------------------
1024+0 records in
1024+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 0,317438 s, 3,3 MB/s
umount: /dev/sdd1: not mounted
Cluster size has been automatically set to 4096 bytes.
Creating NTFS volume structures.
Creating root directory (mft record 5)
Creating $MFT (mft record 0)
Creating $MFTMirr (mft record 1)
Creating $LogFile (mft record 2)
Creating $AttrDef (mft record 4)
Creating $Bitmap (mft record 6)
Creating $Boot (mft record 7)
Creating backup boot sector.
Creating $Volume (mft record 3)
Creating $BadClus (mft record 8)
Creating $Secure (mft record 9)
Creating $UpCase (mft record 0xa)
Creating $Extend (mft record 11)
Creating system file (mft record 0xc)
Creating system file (mft record 0xd)
Creating system file (mft record 0xe)
Creating system file (mft record 0xf)
Creating $Quota (mft record 24)
Creating $ObjId (mft record 25)
Creating $Reparse (mft record 26)
Syncing root directory index record.
Syncing $Bitmap.
Syncing $MFT.
Updating $MFTMirr.
Syncing device.
mkntfs completed successfully. Have a Nice day.
preparing /dev/sdd5  ------------------------------------------------
1024+0 records in
1024+0 records out
1048576 bytes (1,0 MB, 1,0 MiB) copied, 1,7128 s, 612 kB/s
umount: /dev/sdd5: not mounted
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 2743296 4k blocks and 686784 inodes
Filesystem UUID: 3c0ee31f-b5f2-4b21-8ac8-bb8941c39697
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 

mount: /media/multimed-2/CD/ubuntu/16.04/lubuntu-16.04.1-desktop-AMD64.iso is already mounted
fatlabel: warning - lowercase labels might not work properly with DOS or Windows
tune2fs 1.42.13 (17-May-2015)
---------------------------------------------------------------------------
source=lubuntu-16.04.1-desktop-AMD64.iso
---------------------------------------------------------------------------
item 60
umount: /dev/sdd3: not mounted
mount /dev/sdd3 /tmp/dus.KMlnQuCB3J
/dev/sdd3       121M   512  121M   1% /tmp/dus.KMlnQuCB3J
item 65
umount: /dev/sdd1: not mounted
/dev/sdd1       3,5G   19M  3,5G   1% /tmp/dus.FkiHYIJh2I
 BIOS Bootloader:  Installing for i386-pc platform.
Installation finished. No error reported.
 64-bit bootloader: copy the boot files from the iso file 
looper=/tmp/dus.zAxhAauNxN
targ1=/tmp/dus.KMlnQuCB3J
rsync: symlink "/tmp/dus.KMlnQuCB3J/ubuntu" -> "." failed: Operation not permitted (1)
rsync: symlink "/tmp/dus.KMlnQuCB3J/dists/stable" -> "xenial" failed: Operation not permitted (1)
rsync: symlink "/tmp/dus.KMlnQuCB3J/dists/unstable" -> "xenial" failed: Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1183) [sender=3.1.1]
rsync:  don't worry,  symlink errors are *expected*
because of the target file system.
Using the file '/tmp/dus.KMlnQuCB3J/boot/grub/grub.cfg'
 set security upgrade action to 'Display immediately' 
umount: /dev/sdd4: not mounted
 Please wait while copying and syncing until 'Done' is written ... 
< "lubuntu-16.04.1-desktop-AMD64.iso" pv | dd of=/dev/sdd4 bs=4096
 855MiB 0:02:15 [6,33MiB/s] [================================>] 100%            
218880+0 records in
218880+0 records out
896532480 bytes (897 MB, 855 MiB) copied, 148,466 s, 6,0 MB/s
Syncing the target device ...
Wait 5 seconds and a little more ...
<pre>
parted -s "/dev/sdd" print
Model: SanDisk Cruzer (scsi)
Disk /dev/sdd: 16,0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 2      1049kB  2097kB  1049kB               primary  bios_grub
 3      2097kB  130MB   128MB   fat32        primary  boot, esp
 4      130MB   1046MB  916MB                primary
 5      1046MB  12,3GB  11,2GB  ext2         primary
 1      12,3GB  16,0GB  3746MB  ntfs         primary  msftdata

lsblk -o MODEL,NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE "/dev/sdd"
MODEL            NAME   FSTYPE  LABEL                     MOUNTPOINT  SIZE
Cruzer           sdd                                                   15G
                 |-sdd1 ntfs    usbdata                               3,5G
                 |-sdd2                                                 1M
                 |-sdd3 vfat    lub1604164                            122M
                 |-sdd4 iso9660 Lubuntu 16.04.1 LTS AMD64             874M
                 `-sdd5 ext4    casper-rw                            10,5G
</pre>
 Done :-) 
The target device is ready to use.
'lubuntu-16.04.1-desktop-AMD64.iso'
was installed
Cleanup after dus-persistent finished :-)
Cleanup after dus-persistent finished :-)
---------------------------------------------------------------------------
Total time used [by dus-persistent] = 276 s; 00:04:36


Check the result (scroll if possible), press Enter to finish 
p_clean:
live system or temporary superuser permissions
Cloning,live-only,windows / Persistent-live / Quit (c/l/p/w/q) q
clean if necessary and return
sudodus@xenial32 /media/multimed-2/test/mkmkusb/dus $ 
0
sudodus