ディスク/ HDDに永続的な変更を加えたUSBドライブにライブシステムを作成する方法


10

永続的な変更を加えて、UbuntuライブをUSBドライブにインストールしようとしました。ただし、さまざまな理由(パフォーマンス、スペース)のため、変更をUSBではなくHDDに書き込みたいと思っていました。

変更は、システム(casper-rw)によってマウントされたext3ファイルシステムでファイル内で処理されることがわかりました。ただし、起動時にフラッシュドライブで自動検出されるようです。

HDDに新しいcasper-rwファイルを作成し、USBドライブのUbuntuライブシステムをHDDに再ルーティングするにはどうすればよいですか?

2015-07-14を編集:

これまでの回答ありがとうございます。これらは非常に興味深いものであり、「ライブシステムの永続的な保存機能」の仕組みをよりよく理解し、問題を解決するための優れたアプローチを示しています。残念ながら、ホストシステムへのアクセスや、新しいハードウェアへのアクセスに関する質問をするときに頭に浮かんだいくつかの制限を克服しようとしていました(はっきり申し訳ありません)。

パーティショニングがオプションである場合、新しいパーティションを作成し、それにcasper-rwというラベルを付けるだけでよいので、ここで述べた答えは非常に良いと思います。これで完了です(作業はすばらしい、私はテストしました)。

新しいハードウェアの購入がオプションである場合、usb3.0フラッシュドライブ(MLCまたはSLC)、ポータブルHDD、eSATA、およびその他のオプションが、平均的なUSB2.0フラッシュドライブよりもはるかに優れたパフォーマンスを持っていることを思い出します。

したがって、アクセスが制限されたディスク上のパーティションではなく、casper-rwファイルを作成する方法(またはフラッシュドライブ上のファイルをコピー/リンクする方法)があるかどうか疑問に思いました。

このようにして、casper-rwファイルをフラッシュドライブにコピーして再度そこから使用するか、他のコンピューターに移動するだけで簡単になり、柔軟性が増し、HDDへの変更が最小限になり、変更を簡単に削除できます。システム。


これがオプションであるかどうかはわかりませんが、データを保存するだけの場合は、HDDパーティションをライブファイルシステムツリーのどこかにマウントすることもできます...そうすれば、ディスク上に特定のフォルダーしか配置できません。
バイトコマンダー

@ByteCommanderコメントありがとうございます。残念ながら、HDDのパーティション分割はオプションではなく、すべてをできるだけコンパクトにしてデータを高速かつ簡単に削除できるようにしたいので、HDD上の単一ファイルが理想的です。
LS 2015

ファイルシステムのイメージ(たとえば、.isoまたは.imgなど)を含むファイルをマウントすることもできます。残念ながら、私はこれを行ったことはなく、その方法を説明することもできません...
バイトコマンダー

これが機能していないことをどうやって知っていますか?ファイルはcasper-rwという名前ですか?パーティションルートにありますか?私はそれを実行し(代わりにcasper-rwというラベルが付いたパーティションを持つHDDの永続性を使用)、余分な必要な手順を思い出しません。
solsTiCe 2015

最新の編集により、質問が具体的になりすぎて広く使用できなくなります(私の答えは...)不可能ではありませんが、挿入時に[マウント解除]-[HDDに同期]-[マウント]するスクリプトとudevルールを作成することになりますアンマウント時に[HDDと同期]しますが、これは大変な作業であり、このようなQ&Aサイトにはあまり適していません。
Fabby、2015

回答:


4

ライブメディアの書き込み可能なファイルシステム(casper-rwファイル内)をハードディスクに簡単に配置できます。制限は、casper-rwファイルがFATパーティションに配置される必要があることです。新しいマシン(UEFI)にはすべてFAT EFIパーティションがありますが、通常は1G-4G casper-rwファイルを保持するには小さすぎます。別の十分な大きさのFATパーティションでは、ディレクトリを作成できます。各ディレクトリには、おそらく異なるライブメディア用のcasper-rwファイルが保持されています。sda11が10Gであり、/ mnt / sda11にマウントされた10G FATファイルシステムがあり、そこにディレクトリ/ A、/ B、/ C、/ D、および/ Eがあるとします。永続的なメディアに/ Aを使用して、そこにcasper-rwを配置するとします。

cd /mnt/sda11/A
dd if=/dev/zero of=casper-rw bs=1M  count=4096
mkfs.ext4 -F -O^has_journal -L casper-rw casper-rw

永続的に作成されたライブメディアを取得し、/ boot / grub / grub.cfgファイルと/syslinux/txt.cfgファイルを編集して、「永続的」という単語の後に追加します。

"persistent-path=/A"

/boot/grub/grub.cfg ...

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- cdrom-detect/try-usb=true noprompt persistent persistent-path=/A
    initrd  /casper/initrd.lz
}

/syslinux/txt.cfg

default live
label live
menu label ^Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append noprompt cdrom-detect/try-usb=true persistent persistent-path=/A file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
label live-install
...

それでおしまい。USBメディア上のcasper-rwファイルの名前を変更/削除する必要さえありません。


USBメディアに空きがある場合は、ハードディスクのcasper-rwをUSBにコピーして戻し、変更を加えることもできます。


永続パスは明示的なディスク参照を許可しないため、すべてのFATパーティションで一意である必要があります。1つまたは2つのFATパーティションでテストされています(1つはEFIパーティションです)。FATの代わりにext2またはntfsファイルシステムでは機能しません。「永続的」と同じ行に「トラム」という単語も追加すると、低速USB上の圧縮ファイルシステムがRAMにコピーされ、パフォーマンスが大幅に向上しますが、FATパーティションでシャットダウンの問題が発生しているようですきれいにアンマウントされていない(これは問題を引き起こさないようですが...)


ありがとう。それは物事をより明確にします。ブート状態ではntfsを認識できないと思います(そうですか?)ので、ntfsパーティションにcasper-rwを置くことはできません。したがって、casper-rwというラベルの付いたext4パーティションを使用するか、「toram」やramdriveなどを試してみます。
LS

ISOであるため、ライブメディアを読み取り専用でマウントすることしかできないとしたら、どのように変更grub.cfgまたはsyslinux.txt指定しますか?
solsTiCe 2016年

上記はISOを使用して、ファイルが書き込み可能なライブメディアUSBを作成しました。ISOを直接(たとえば、ハードディスクから)ブートするには、ファイルが編集可能な完全に別のgrub(ハードディスク上のもの)を使用します。この場合、ISOからのブートメカニズムはまったく使用しません。
ubfan1 2016年

7

次の設定を使用すると、非常に簡単です。

  1. キャスパースタッフなしでSLC USBスティック(ハードウェアがサポートしている場合はUSB 3.0を推奨)にUbuntuをインストールします(USBスティックをSSDとして扱う通常のインストールのみ)。

    どうして?SLCはMLCの2倍の費用がかかりますが、4倍高速で、8倍長持ちします。 だから、それらは本当に小さなSSDです。

  2. システムを最適化し、USBスティックを小さなSSDとして扱います。

    あなたの/etc/sysctl.conf追加で:

    # Fabby: change the "swappiness" to 10 to prevent swapping as much as possible
    # to not wear out the USB stick as the Ubuntu default is optimized for a server.
    # 10 to balance with vfs_cache_pressure
    vm.swappiness = 10
    
    # Fabby: Lower vfs_cache_pressure to 75% 
    # (once cached, probably not immediately needed any more)
    #
    # This percentage value controls the tendency of the kernel to reclaim
    # the memory which is used for caching of directory and inode objects.
    #
    # At the default value of vfs_cache_pressure=100 the kernel will attempt to
    # reclaim dentries and inodes at a "fair" rate with respect to pagecache and
    # swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
    # to retain dentry and inode caches.
    vm.vfs_cache_pressure = 75
    
    # Fabby: Good to improve sequential reads (stop stuttering in movie play)
    # Can also be implemented per disk using udev rules
    vm.max-readahead=2048
    vm.min-readahead=1024
    

    あなたに/etc/fstab追加太字PARAMATERSをブートUSBラインに。(sdcまたはになりsddます。以下は例です。可能であればUIDを使用してください)

    /dev/sdc / ext4 defaults,noatime,discard,errors=remount-ro 0 1

  3. 2つのユーザーを作成します。USBスティックにホームディレクトリがあるが、ファイルがほとんどない管理ユーザーと、HDDにホームディレクトリを持つ通常のユーザー。

  4. 今だけ HDDを挿入し、あなたに必要なHDDの情報を追加fstabするHDDを自動マウントすると、次のパラメータを追加します。

    nobootwait,nofail

    HDDが存在しない場合でも起動できるようにします(その場合、管理ユーザーのみがアクセスでき、通常のユーザーはアクセスできません)

  5. 次に、adminユーザーとしてログインし、通常のユーザーのホームディレクトリをUSBスティックからHDDに移動します。

cp --preserve=all /home/NormalUser/* /media/ExternalHDD/NormalUser

すべて問題なければ:

rm --recursive --force /home/NormalUser/*
cd /home
ln --symbolic /media/ExternalHDD/NormalUser

できた!:-)

記録のために:私はこのような16GB USB 2.0 MLCスティックを持っています(私のユースケースにはそれで十分であり、あまり高価ではありません、そしてそれは約5年前のものであり、まだ実行中です!)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.