web-dev-qa-db-ja.com

disk / hddの永続的な変更を使用してusbドライブにライブシステムを作成する方法

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

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

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

編集2015-07-14:

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

パーティション分割がオプションの場合、新しいパーティションを作成するだけでよいので、 here の答えは非常に良いと思います、それはcasper-rwとラベル付けして完了です(作業は素晴らしいです、テストしましたそれ)。

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

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

この方法では、casper-rwファイルをコピーしてフラッシュドライブに戻すか、そこから再び使用するか、他のコンピューターに移動するだけで簡単になり、優れた柔軟性、HDDへの最小限の変更、および行われた変更の簡単な削除システム。

10
L.S.

ライブメディア用の書き込み可能なファイルシステム(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」という単語の後に追加します

"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にコピーして、変更を持ち込むこともできます。


Persistent-pathは明示的なディスク参照を許可しないため、すべてのFATパーティションで一意である必要があります。 1つまたは2つのFATパーティションでテスト済み(1つはEFIパーティション)。 FATではなく、ext2またはntfsファイルシステムでは動作しません。 「パーシステント」と同じ行に「toram」ワードも追加すると、低速USB上の圧縮ファイルシステムがramにコピーされ、パフォーマンスが大幅に向上しますが、FATパーティションでシャットダウンの問題があるようです。きれいにアンマウントされていない(問題は発生していないようですが...)

4
ubfan1

次のセットアップを使用する場合、これは非常に簡単です。

  1. Ubuntuを SLC USBスティック (ハードウェアがサポートしている場合はUSB 3.0を推奨)にインストールします(通常のインストールで、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に追加します 大胆なパラメーター ブートUSBラインに。 (おそらくsdcまたはsddになります。以下は例です。可能であればUIDを使用してください)

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

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

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

    nobootwait,nofail

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

  5. 管理者ユーザーとしてログインし、通常のユーザーのホームディレクトリを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歳でまだ動作しています!)

7
Fabby