海蘊のブログ

PR

×

プロフィール

sukumon

sukumon

カレンダー

バックナンバー

2026.10
2026.09
2026.08
2026.07
2026.06

カテゴリ

カテゴリ未分類

(4)

LINUX 

(0)

LINXULIVECD

(1)

javbascript

(0)

html

(0)

コメント新着

コメントに書き込みはありません。

キーワードサーチ

▼キーワード検索

2018.06.09
XML
カテゴリ: LINXULIVECD
​ LINUX liveCD 編集してほぼフルラムLINUXを作る:
このページは日記というより数日かけて作ります。 更新繰り返します。
まずは フェイドラライブCDのダウンロードです。​ https://spins.fedoraproject.org/ ​ より


こんな順番で  ダウンロード に到達します。

ライブCDをダウンロードしてきてこれを分解します。
 1 フォルダイメージを取り出す。
 2 フォルダイメージを編集する。 あれやこれやインストールします。

 4  ついでに メイクしたカーネルを 交換する。

つまり自分だけのLIVECDができあがります。
 なにかにログインした状況で固めるとライブCDにパスワード関連も練り込まれますのでご注意を
 そんなCDを配布でもしようものなら 恐ろしいことになります。

特徴 ライブCDの構造は 基本的にすべてRAM動作です。ライブCDの構造で起動した状況で
例えば home/liveuser を まるごと別のUSBメモリに切り替えるということもできます。
   せっかくのLIVECDの構造なのに何もかも外部ストレージにするぐらいなら
   普通にインストールしてくださいということになりますので 
   次の程度にしておきます。つまりシステムログは電源切れると消えます。
今回 LIVECD起動の構造で 次に示すフォルダを外部ストレージに割り付けます。
      /---

|/root             これやめます
 |/var/www           これやめます
|/var/opt           
        |/usr/local         

作成の目的:
 firefox を何時でも軽快に動かしたい。 ​ 過去記事 近頃ブラウザさえあれば事足りる。 ​
 これだけの目的です。とにかくブラウザが軽快でなければお話になりません。
 そのために ライブCDの構造で ブラウザのためだけのlinux を自分用に作ってみたかった。
 リアルタイム性がいいはずなのでオーディオ用でもいいかと思います。
簡単にまとめますと

​ ​ダウンロードしてきたライブCDを編集して使う​​

ということです。
 事実上webブラウザのデータ保存以外 ストレージへの書き込みがない状況をつくります。
 今後firefoxが遅いのどうのというボヤキをしなくて済むはずなのです。スマイル
 /usr/localを外部ストレージに出す理由はcudaを使いたいためです。
 流石にCDブートの仕組みにはcudaライブラリは入りそうにありません。

ページ構成:
   実際にコマンドとして打ち込むものはグリーンの文字
   $から始まるコマンドは ユーザコマンド
   #から始まるコマンドは ルートユーザーコマンドです。 sudo にすればよかったが・・
   薄紫背景の枠はコマンドを打ったときのリナクスからの返答を参考までに貼っています。
黒文字は ボヤキです。
   ルートユーザーになるみたいな基本的なことは書いていません。​ おさっしください ​。
      コンパイラはインストールされているのが前提です。 
       dnf -y gcc みたいなことまでは書いておりません。​ おさっしください ​。
       総て64ビットが対象です。32bitライブラリの欠落などは考慮していません。
免責:ブログの範囲の話です。OSそのものが無償のものですしそれへのコメントという位置づけです。
   つまり本記事により発生したいかなる損害についても全く保証いたしません。
   ​ おさっしください ​。

では本論に入ります。

ダウンロードした Fedora-Xfce-Live-x86_64-28-1.1.iso を使います。開発用PCです。2018/6/10 前後の最新版です。
必要物をインストールします。
# dnf install -y kernel-devel squashfs-tools dump isomd5sum  genisoimage  livecd-tools
先程ダウンロードしたものから rootfs.img を抜き取ります。
$ mkdir tmp3 tmp2 tmp1
$ mount Fedora-Xfce-Live-x86_64-28-1.1.iso tmp3
$ mount tmp3/LiveOS/squashfs.img tmp2
$ mount tmp2/LiveOS/rootfs.img  tmp1
# cp -a tmp3 LIVECDIMG
tmp3 tmp2 tm1 の順で使うと後でアンマウントが簡単

tmp2には squashfs が見えます。
tmp1 には リナクスのファイルシステムが見えます。
tmp3の イメージを 取り出します。
上記 tmp3,2,1を原本としてこれを コピーして 切ったり貼ったりです。
次に 原本の編集先を確保します。
$ mkdir        zzrootfs
# cp -a tmp1/* zzrootfs
$ mkdir -p
   squashfs /LiveOS
$ rm -rf      squashfs/LiveOS/*
$ truncate -s $((2**33)) squashfs/LiveOS/rootfs.img 
$ mkfs.ext4 -L Fedoralivecd squashfs/LiveOS/rootfs.img

# umount -l   rootfs
# mkdir -p    rootfs
# mount     squashfs/LiveOS/rootfs.img rootfs
# cp     -a  tmp1                   zzrootfs
編集用フォルダです これを編集します。
上記tmp1原本をまるごとコピーします。
livecd用の入れ物です。 編集済をいれます。
 ゴミがあると面倒なのでで消します。
8Gバイト作成します。取りあえず
 フォーマットします。
過去にマウントされているとダメなのでアンマウント
livecd用入れ物の フォルダを rootfs とします。
rootfs マウントします。
tmp1 をごっそり  zzrootfs にコピー
さらに 
cp /etc/resolv.conf zzrootfs/etc
ネット関係つなぐため
# mount -o bind /dev/  zzrootfs/dev/
# mount -o bind /proc/ zzrootfs/proc/
# mount -o bind /tmp/  zzrootfs/tmp/
# mount -o bind /run/  zzrootfs/run/
さらに zzrootfs を加工します。
#echo hostonly="no"                        >  zzrootfs /etc/dracut.conf.d/01-liveos.conf
#echo add_dracutmodules+="dmsquash-live"  >>  zzrootfs /etc/dracut.conf.d/01-liveos.conf
#echo compress="xz"                       >>  zzrootfs /etc/dracut.conf.d/01-liveos.conf

                                 段取りの部1番終了


zzrootfs   ファイルシステムの自分用の編集
chroot zzrootfs 
で飛び込んで dnf -y update とやってみます。
なんとまぁフェドラ28がもうすでに 800個アップデートがあるようです。一部抜粋で貼っておきます

                                                          前略
Verifying        : openssh-server-7.7p1-2.fc28.x86_64                                                                         811/822
  Verifying        : openvpn-2.4.5-1.fc28.x86_64                                                                                812/822
  Verifying        : opus-1.3-0.4.beta.fc28.x86_64                                                                              813/822
  Verifying        : rsyslog-8.34.0-1.fc28.x86_64                                                                               814/822
  Verifying        : pam-1.3.0-10.fc28.x86_64                                                                                   815/822
  Verifying        : pango-1.42.1-1.fc28.x86_64                                                                                 816/822
  Verifying        : perl-Carp-1.42-395.fc28.noarch                                                                             817/822
  Verifying        : perl-Digest-SHA-1:6.01-2.fc28.x86_64                                                                       818/822
  Verifying        : perl-Errno-1.28-409.fc28.x86_64                                                                            819/822
  Verifying        : perl-IO-1.38-409.fc28.x86_64                                                                               820/822
  Verifying        : perl-Net-HTTP-6.17-2.fc28.noarch                                                                           821/822
  Verifying        : perl-Storable-1:2.62-396.fc28.x86_64                                                                       822/822

Installed:
                                                    |
                        中略
                                                    |
1:5.39-4.fc28                            
  xscreensaver-extras-base.x86_64 1:5.39-4.fc28                    xz.x86_64 5.2.4-2.fc28                                              
  xz-libs.x86_64 5.2.4-2.fc28                                      zlib.x86_64 1.2.11-8.fc28                                           

Complete!

test として chroot したまま xclock を起動して 動作するかをチェック
多分 はじかれるので   xhost +local:user ホスト側で 受け入れしてあげてください。
​xhost +local:user              ​おそらくデフォルトでは これないと動かないと思う​ ​

編集がここで済んだとします。
   ライブUSBの作成をします。
# rm -f  squashfs.img
# mksquashfs squashfs squashfs.img.new -comp gzip

これめちゃちくちゃCPUパワー食います
出来上がった
squashfs.img.new
を       

LIVECDIMG (tmp3 を保存したもの)これの LIVECDIMG/LiveOS/ squashfs .img
に 上書きします。  つまり元の鞘に収めたことになります。
これら を いよいよ iso ファイルに詰めます。
LANG=C
mkisofs -v -r -J -l -input-charset utf-8 \
   -V 'CDLABEL=Fedora-Xfce-Live-28-1-1' \
  -cache-inodes \
  -b isolinux/isolinux.bin \
  -c isolinux/boot.cat \
  -no-emul-boot \
  -boot-load-size 4 \
  -boot-info-table \
  -o Fedora-Xfce-Live.iso \
  ./LIVECDIMG
LANG=C implantisomd5 Fedora-Xfce-Live.iso

​殆ど呪文です。
見ての通りです。
ラベル LIVECDIMG/isolinux/isolinux.cfg の
    root=live:CDLABEL=Fedora-Xfce-Live-28-1-1
このラベル指定と一致する必要があります。
あとは bootの指定だったり カタログ指定
ブートの方式は 従来のバイオスでの 機動 起動です。​

 -o は isoファイルネームです


これで    iso ファイルができました。 あとは 好みの書き込みソフトを使って 作ってください。
マルチブートだったり 趣味のところが強いので それは外します。

ーーーーーここからは雑談。
    やはり qtを搭載シタイです。 実はやってみたのだけどデフぉでインストールしたらデカ過ぎで断念しました。 外部に/opt
      /---
     |/home/liveuser
|/root             これやめます
 |/var/www           これやめます
        |/var/opt          これやめます 復活させます
        |/usr/local               

やっぱ user/local /opt を外付けにします。

boot は2G程度で いいや /usr/local  /home/liveuser /opt
 NTSCが使えるか否かしらんので調べます。
 それぞれのIDを調べてと
blkid コマンドで
 マウントすることになります。 インストール時はどうするのかというと バインドです。
 動いたら その結果を貼ります。 あとちょっとかな

  ううハマった ログインした途端に ログアウト  なんだがわからんが selinux がなにかひっかかってることだけはわかったので  取り敢えず enforcing=0を 起動オプションに

   つまり インチキ解決を一つした。
   boot opition     enforcing=0  これで取り敢えず動いた
   dnf でなにかインストールしても その場限りの ライブCDであることは違いない。
   ウィルス対策としてはどうなのだろうか 。home/liveuserは リードライトできる。
  /usr/localのプログラムに仕込まれる ウィルスには対抗できない。

後記:
   上手く動いた うれしいスマイルスマイルスマイルスマイル
   数日後に カーネルを交換してみる。
  驚いたのが QTコンパイラが 進化して 数ギガバイトのサイズになっていた。
  アンドロイドの開発なのどのツールを入れないようにしても数ギガ消費した
  ライブCD単体では QTコンパイラは入らないようだ。

syslinuxを使ったライブUSBを作った。
 一度作ると簡単に変更ができる。
 syslinux.cfg を変更するといろいろ出来そうだ。

 偶然というものが味方をすることがあった 現在開発側ホストPCと
  ライブCDのイメージが全く同じカーネルを使っている。 こりゃいいや

echo hostonly="no"                        > /etc/dracut.conf.d/01-liveos.conf
echo add_dracutmodules+="dmsquash-live"  >> /etc/dracut.conf.d/01-liveos.conf
echo compress="xz"                       >> /etc/dracut.conf.d/01-liveos.conf
dracut -f -v initrd-$(uname -r) $(uname -r)
rm -f /etc/dracut.conf.d/01-liveos.conf

 を ホスト側で設定して  ラムイメージをつくる。それが澄んだら 
/etc/dracut.conf.d/01-liveos.conf を消してしまえば 問題がない。

ちょっとやってみよう。
でけた。
  youtube  コッキング なくなった。音も途切れない 。 これはこれでおしまい。
 リアルタイム性をそこなうのは ファイルシステムにちがいないので ファイルアクセスの物理デバイスアクセスがへれば当然の結果といえる。 近年リアルタイムファイルシステムとやらがでてきたようだが
 どうなるんだろうか。 随分マシになった。これなら 2スレッド程度のプロセッサでかなり行けるなぁ

     SMP PREEMPT Sun Jun 10 17:07:51 JST 2018 x86_64 x86_64 x86_64 GNU/Linux
     の ライブ版は 軽いなぁ


























​ ​​ ​​





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2019.06.22 00:26:40
コメント(0) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: