請選擇 進入手機版 | 繼續訪問電腦版

NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
查看: 2378|回復: 21

[分享] 整合 卡巴 和 ESET 救援ISO 到 HDD

[複製鏈接]
發表於 2016-12-23 15:09:22 | 顯示全部樓層 |閱讀模式
本帖最後由 阿達金田一 於 2019-3-21 17:36 編輯

因為沒多的 USB 可以玩...所以是用 vbox 模擬
實機可能要視情況修改

vbox
ram: 512M
sata-0: 10G (VHD File)
sata-1: CDROM

先說一下... 下面主題是討論 kaspersky rescue disk 10 怎麼 ISO to USB
[問題] [請益] G4D USB開機引導Kaspersky Rescue Disk 10??

但是我個人用 vbox 都是失敗..不知道是不是版本問題 ... 還是限定 USB裝置
我是用 2016.12.21 的版本
另外 kaspersky 官方也有提供 iso to usb 的程式 ...

至於 ESET SysRescue ... 官方有提供 to USB 的程式... 可以的話先做出來...USB版本 ...在看怎麼整合



而這裡...說的都是直接用 ISO 中的檔案來製做...不是 正常 to USB 方式

1. VHD ... 10G ... 2個分割區
啟動分區 是 USBBOOT 那一個...2個防毒等下都會放這
FAT32 NTFS 都可以...



2. 引導
MBR , USB-HDD+
PBR , GRUB4DOS (GRLDR)



3.
自己準備 GRLDR 放根目錄
自己建立 menu.lst ... (可以看情況自行整合)
set label=USBBOOT 是所放置分區的 LABEL 依自己的情況修改...我 Label 是用 USBBOOT
title Kaspersky Rescue Disk 10.0
set label=USBBOOT
set rescue=/rescue/rescue
find --set-root %rescue%
kernel %rescue% root=LABEL=%label% rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=sch udev liveimg splash quiet doscsi nomodeset
initrd %rescue%.igz

title ESET SysRescue
kernel /casper/vmlinuz boot=casper quiet splash --
initrd /casper/initrd.lz


4. 整合 Kaspersky Rescue Disk 10.0 ISO
將 Kaspersky Rescue Disk 10.0 ISO (kav_rescue_10.iso) 中的
\livecd
\boot\rescue
\boot\rescue.igz
\rescue\base
\rescue\LiveOS
提取出來放 USBBOOT 根目錄
\boot\rescue
\boot\rescue.igz
移動到 \rescue\ 下面 ...
如果不移動...上面 menu.lst 中 set rescue=/rescue/rescue 就要改成 set rescue=/boot/rescue
其它檔案不變(也不能改變)

Kaspersky Rescue Disk 10.0 ISO 架構說明

rescue , rescue.igz 是 啟動用的 Linux核心
而 root 則是 啟動時用參數 root=LABEL=LableName 來設定
(原始是 root=live:CDLABEL=LableName ... 不過我查過資料用 LABEL 也可以 )
啟動核心 不支援 grub4dos 的 map iso ... 所以單純用 map iso ... 會找不到 root
因為這裡是用 grub4dos 去加載...所以配合 grub4dos 位置是可以改變

\rescue\LiveOS 是 主要系統檔案
除非會改 啟動核心 ... 不然 啟動核心 會固定載入 root 中的 \rescue\LiveOS\squashfs.img

\rescue\base 是 原始病毒資料庫
\livecd  是 用來判斷  原始病毒資料庫 所在
也就是進入 KRD10 後會找 \livecd 並找  原始病毒資料庫 \rescue\base
所以缺任何一個... 病毒資料庫 會顯示損毀 ... 不過 KRD10 支援 外部病毒資料庫...等下會說


5. ESET SysRescue
這個比較簡單...提取 iso (我是用 eset-sysrescue.1.0.9.0.enu.iso) 中的 \casper 目錄就可以
提取 \casper 到 USBBOOT 根目錄下 ... 位置不可變動

架構其實很類似 KRD10
\casper\vmlinuz , initrd.lz 是 啟動核心
00_base.squashfs ... 等檔案 主要系統檔案


基本上...這樣就好了
4 和 5 做好就是像這樣


然後是 KRD10 的 外部資料庫
KRD10 在運作... 其實是先找 外部病毒資料庫 沒有時...
才會用 原始(內建)病毒資料庫 建立一份 外部病毒資料庫
如果 電腦 中沒有 可寫空間 時... 外部病毒資料庫 會寫到 記憶體 中
而正常情況 (即要掃毒...當然應該有硬碟...正常也會有可寫空間) ... 會寫到可寫空間中

由於 外部資料庫 是可寫空間...所以可以更新

以我這裡的情況就是
首次執行時 KRD10 沒有 外部病毒資料庫
所以會先用  USBBOOT 中的 原始(內建)病毒資料庫 ( \rescue\base )
寫一份到 USBData 中的 \Kaspersky Rescue Disk 10.0\
然後... 後面 update 更新時...是寫入到 \Kaspersky Rescue Disk 10.0\


之後 KRD10 重開機執行時...因為 外部病毒資料庫 已存在
所以就不會用到 原始(內建)病毒資料庫

利用 外部病毒資料庫 ... KRD10 的 結構 可以改成
USBBOOT 中的
\livecd 可以砍了
\rescue\base 移動到 USBData 中的 \Kaspersky Rescue Disk 10.0\bases_rd

如果不會...就是先跑一次 KRD10 ... 該 KRD10 自動建立 外部資料庫 ... 只不過大概會寫入 第1個 可寫空間(分區)
應該可以自己放到別的分區 ( 沒有特別去測...不過不能放 USBBOOT  ... 外部資料庫不能在 root 分區中 )
之後 原始資料庫...砍不砍沒差...要省空間可以砍

下圖是 只有 USBData(/dev/sda2)外部資料庫 ... USBBOOT(root) 原始資料庫 砍掉了

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?我要註冊

x

點評

太有心了  發表於 2016-12-23 19:43
 樓主| 發表於 2019-8-23 23:46:20 | 顯示全部樓層
本帖最後由 阿達金田一 於 2019-8-23 23:47 編輯
keney 發表於 2019-8-23 22:45
真奇怪,都用了這麼多語法 與 自行加減修改  也是無法進入圖形介面XD
都是卡在
title --1--ESET掃毒 V1.0.18.0(英文版)
set iso=/iso/eset.iso
set USB=32GB
map %iso% (0xff)
map --hook
partnew (hd0,3) 0x0 %iso%
root (0xff)
kernel /casper/vmlinuz boot=casper live-media=/dev/disk/by-label/%USB% quiet splash ---
initrd /casper/initrd.lz

or
title --1--ESET掃毒 V1.0.18.0(英文版)
set iso=/iso/eset.iso
set USB=32GB
map %iso% (0xff)
map --hook
partnew (hd0,3) 0x0 %iso%
root (0xff)
chainloader

前面說過了
第1個是自己用G4D下 Linux 開機指令
第2個 用 chainloader 是用 eset iso 本身的 開機引導來 做 ESET Linux 開機

另外 用 partnew (hd0,3) 0x0 %iso%
iso 要為連續磁區儲存比較好
partnew 其實是寫入 MBR 分割表 的一個動作
這個其實就是 建立 MBR分割表 的 分區
一個 MBR 最多主能建4個主分區
通常 USB 是只有一個分區...所以 (hd0,1) - (hd0,3) 是都沒在用
簡單的說 分割表 就是記錄 分區 的 類型(type) 起始LBA(start) 多大(Len)
partnew (hd0,3) 0 0 0
就是 type 0 起始LBA 0 大小 0 ...等於是把 分割表 的 分區4資料 填0 相當於移除資料
而  partnew (hd0,3) 0x0 %iso% 是一種映射用法
以 raw 的角度來看 例如
(hd0,0) 是 LBA1024 - LBA 1023999
(hd0,1) 是 LBA1024000 - LBA 20473999
假設有一個 iso 或 img 檔是儲存在 (hd0,0) ... 例如 /eset.iso
該檔 /eset.iso 為連續磁區儲存在 LBA 256000 - 512000
那 partnew (hd0,3) 0x0 /eset.iso
就等同在 MBR 加上
(hd0,3) LBA 256000 - 512000

簡單說你用過 partnew (hd0,3) 0x0 %iso% 後
用 bootice 去查看分區....你會發現多一個 id 0 的 分區...

發表於 2016-12-26 15:30:41 | 顯示全部樓層
感謝金大的用心教學,再來慢慢研究看看

目前小弟已經用了懶人安裝程式整合了AVG、ESET及kaspersky。
發表於 2019-3-19 16:46:21 | 顯示全部樓層
kilo88996 發表於 2016-12-26 15:30
感謝金大的用心教學,再來慢慢研究看看

目前小弟已經用了懶人安裝程式整合了AVG、ESET及kaspersky。 ...

可以請問大大,您是用哪套整合的呢?
發表於 2019-3-24 09:32:08 | 顯示全部樓層
現在好像到18了 不知也一樣嗎?
有空來試試
感謝分享!!
發表於 2019-8-17 17:04:07 | 顯示全部樓層
本帖最後由 keney 於 2019-8-19 22:54 編輯

感謝~~
我去 ESET官方抓取最新的ISO擋了,只差在 G4D 的 MENU指令

title ESET SysRescue
kernel /casper/vmlinuz boot=casper quiet splash --
initrd /casper/initrd.lz

謝謝分享
發表於 2019-8-19 22:59:54 | 顯示全部樓層
請問 解法

目前 是將 casper 資料夾解壓縮出放置底層,可以直接執行
title ESET SysRescue
kernel /casper/vmlinuz boot=casper quiet splash --
initrd /casper/initrd.lz

但問題來了~~

請問 目前是 資料夾的方式啟動可以進入""ESET圖形介面""

請問 如何製作成ISO檔案  然後G4D MENU啟動呢


我試過了幾個方式 不行

製作好的可開機ISO檔,裡面 只有  casper 單獨資料夾

MENU為

title --1--ESET掃毒 V1.0.16.0(英文版)
set isoname=/ISO/ESET.iso
find --set-root %isoname%
map --heads=0 --sectors-per-track=0 %isoname% (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz boot=casper quiet splash iso-scan/filename=%isoname%
initrd /casper/initrd.lz

但是 卻無法進入ESET圖形介面,卻是 在 LINUX 指令畫面(黑底白字)  請問 如何排解??????
 樓主| 發表於 2019-8-20 03:31:12 | 顯示全部樓層
本帖最後由 阿達金田一 於 2019-8-20 04:03 編輯

不是所有 Linux 都支援 iso-scan
這要看 各方的 Linux 有沒有這個支援
另外就有支援類似 iso-scan 的功能也不一定都是用 iso-scan ...

然後在 USB(HDD) 上用 G4D map iso (G4D 虛擬 CD)...又是一種情況
因為這要算 usb 還是 CD 啟動 ? ... 不同的 Linux 可能做法也不同
像 ESET  用 G4D map iso ... 對 eset iso 算是 CD 啟動... 即 live-media = CD
但不一定所有 Linux 都支援 G4D map iso ...
簡單說就是 進 ESET Linux 後... G4D CD 就廢棄了 ...
所以 ESET Linux 因為沒 G4D CD(不支援唄)... 找不到 live-media

看下面指令
https://forum.eset.com/topic/199 ... -directly-from-iso/
kernel (0xff)/casper/vmlinuz boot=casper live-media=/dev/disk/by-label/<Label of my usb-drive> locale=de_DE.UTF-8

實際上因為 G4D CD 會廢棄 ... 而且是用 usb 啟動...所以要把 live-media 指定到 usb


我剛下載 ESET ISO

看 iso 裡面原始的開機的設定檔
\isolinux\txt.cfg
append boot=casper live-media=/dev/disk/by-label/eSysRescueLiveCD initrd=/casper/initrd.lz quiet splash ---


\boot\grub\grub.cfg
set live_media="/dev/disk/by-label/eSysRescueLiveCD"
linux   /casper/vmlinuz boot=casper live-media=${live_media} quiet splash --


發表於 2019-8-21 21:41:31 | 顯示全部樓層
阿達金田一 發表於 2019-8-20 03:31
不是所有 Linux 都支援 iso-scan
這要看 各方的 Linux 有沒有這個支援
另外就有支援類似 iso-scan 的功能也 ...

清楚明白~~
我再試試看G4D的正確寫法~

可請問金田一哥  

您有寫好的G4D寫法嗎?

方便提供參考  謝謝您
 樓主| 發表於 2019-8-22 09:33:24 | 顯示全部樓層
本帖最後由 阿達金田一 於 2019-8-22 09:47 編輯
keney 發表於 2019-8-21 21:41
清楚明白~~
我再試試看G4D的正確寫法~

我前面貼的參考文章連結中不就有了
title ESET SysRescue 1.0.16 (20180521)
find --set-root /ESET-SysRescue-1.0.16.iso
map --heads=0 --sectors-per-track=0 /ESET-SysRescue-1.0.16.iso (0xff) || map --heads=0 --sectors-per-track=0 --mem /ESET-SysRescue-1.0.16.iso (0xff)
map --hook
kernel (0xff)/casper/vmlinuz boot=casper live-media=/dev/disk/by-label/<Label of my usb-drive> locale=de_DE.UTF-8
initrd=(0xff)/casper/initrd.lz

kernel (0xff)/casper/vmlinuz boot=casper live-media=/dev/disk/by-label/<Label of my usb-drive> locale=de_DE.UTF-8

你可以依據實際上 ESET ISO 中的去改...因為這個可能是比較舊的... 不過差別也不大
依據我前面貼的資料...大概就是改成

kernel (0xff)/casper/vmlinuz boot=casper live-media=/dev/disk/by-label/<Label of my usb-drive> quiet splash ---

<Label of my usb-drive> 就是你的 usb label
簡單說就是 ESET Linux 是用 disk label 來判斷 live-media

拿你自己寫的 G4D 其實也就改一句而以 ... 不是用 iso-scan 而是用 live-meida
假設你的 usb lable 是 usbtools
kernel /casper/vmlinuz boot=casper quiet splash iso-scan/filename=%isoname%
改成
kernel /casper/vmlinuz boot=casper live-media=/dev/disk/by-label/usbtools quiet splash ---
發表於 2019-8-22 12:00:01 | 顯示全部樓層
本帖最後由 pinko 於 2019-8-22 12:23 編輯
阿達金田一 發表於 2019-8-22 09:33
我前面貼的參考文章連結中不就有了

kernel (0xff)/casper/vmlinuz boot=casper live-media=/dev/disk/by- ...
假設你的 usb lable 是 usbtools
kernel /casper/vmlinuz boot=casper quiet splash iso-scan/filename=%isoname%
改成
kernel /casper/vmlinuz boot=casper live-media=/dev/disk/by-label/usbtools quiet splash ---

試過,是不行的,可能是因為沒支援ntfs或gr4的map斷了 ; 查了/dev/disk/by-* 裏找不到iso的資料
不過在RMPrepUSB提到可讓g4d開幾乎任何的linux iso 主要是用到partnew 指令(以前也沒注意到) ,可設定分割區映射到其它磁區檔或連續映像檔
這裏是定在(hd0,3) 所以 hd0不可以有第4分割區,不然會不見!!!!請注意
測試過eset和ubuntu可啟動,設定如下

title My linux (boot from ISO)
set ISO=linux.iso

# check and make an empty table entry in 4th position in ptn table
parttype (hd0,3) | set check=
set check=%check:~-5,4%
if "%check%"=="0x00" partnew (hd0,3) 0 0 0
if not "%check%"=="0x00" echo WARNING: PTN TABLE 4 IS ALREADY IN USE! && pause && configfile /menu.lst

ls (hd0,0)/%ISO%  && partnew (hd0,3) 0x00 /%ISO%

map /%ISO% (0xff)
echo -e \r\n
map --hook
root (0xff)
chainloader (0xff)





您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

小黑屋|手機版|NoName Team 電腦資訊討論區 |網站地圖

GMT+8, 2019-9-18 19:39 , Processed in 0.241145 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表