Ⅰ 怎麼樣U盤安裝linux系統
用UNetbootin可以輕松的把各種操作系統裝進U盤 你可將U盤插到USB介面。 注意:一定要先插U盤再運行UNetbootin!然後從菜單「應用程序——系統工具」里運行UNetbootin軟體。然後把你下好的iso文件放到U盤里,重啟電腦,並設置U盤為第一啟動設備,即可啟動U盤里的操作系統。
使用的時候需要點上顯示所有驅動器,U盤需要掛載狀態,需要格式化成FAT32格式。
或者使用UltraISO
Ⅱ 怎麼查看linux usb設備驅動
下面的信息都是在VMware中運行Ubuntu12-04系統上執行的。同樣該命令也支持在嵌入式系統中進行USB調試。
一、cat設備節點獲取信息
在一些嵌入式開發中需要調試USB功能,經常會cat /sys 下的相關設備節點來查看某些信息,比如說我們可以看到 /sys/bus/usb/devices 目錄有多個子目錄。進入到某個子目錄可以看到usb設備更加詳細的信息(可以理解為設備描述符)。
1、usb設備在匯流排上的信息
// usb設備在匯流排上的信息
root@ubuntu:/sys/kernel/debug# cd /sys/bus/usb/devices
root@ubuntu:/sys/bus/usb/devices# ll
total 0
drwxr-xr-x 2 root root 0 Nov 26 21:21 ./
drwxr-xr-x 4 root root 0 Nov 26 21:21 ../
lrwxrwxrwx 1 root root 0 Nov 26 21:21 1-0:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-0:1.0/
lrwxrwxrwx 1 root root 0 Dec 15 23:10 1-1 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-1/
lrwxrwxrwx 1 root root 0 Dec 15 23:18 1-1:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-1/1-1:1.0/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-0:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-0:1.0/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-1 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-1:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-1/2-1:1.0/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-2 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 2-2:1.0 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/2-2/2-2:1.0/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 usb1 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/
lrwxrwxrwx 1 root root 0 Nov 26 21:21 usb2 -> ../../../devices/pci0000:00/0000:00:11.0/0000:02:00.0/usb2/
其中 usbx/第x個匯流排,x-y:a.b/的目錄格式,x表示匯流排號,y表示埠,a表示配置,b表示介面。
具體解釋可以參照如下:
The names that begin with "usb" refer to USB controllers. More accurately, they refer to the "root hub" associated with each controller. The number is the USB bus number. In the example there is only one controller, so its bus is number 1. Hence the name "usb1".
"1-0:1.0" is a special case. It refers to the root hub's interface. This acts just like the interface in an actual hub an almost every respect; see below.
All the other entries refer to genuine USB devices and their interfaces. The devices are named by a scheme like this:
bus-port.port.port ...
In other words, the name starts with the bus number followed by a '-'. Then comes the sequence of port numbers for each of the intermediate hubs along the path to the device.
For example, "1-1" is a device plugged into bus 1, port 1. It happens to be a hub, and "1-1.3" is the device plugged into port 3 of that hub. That device is another hub, and "1-1.3.1" is the device plugged into its port 1.
The interfaces are indicated by suffixes having this form:
:config.interface
That is, a ':' followed by the configuration number followed by '.' followed by the interface number. In the above example, each of the devices is using configuration 1 and this configuration has only a single interface, number 0. So the interfaces show up as;
1-1:1.0 1-1.3:1.0 1-1.3.1:1.0
A hub will never have more than a single interface; that's part of the USB spec. But other devices can and do have multiple interfaces (and sometimes multiple configurations). Each interface gets its own entry in sysfs and can have its own driver.
2、特定設備的詳細信息
進入到某個目錄中去,可以看到該設備的詳細信息,可用cat命令獲取信息。
// usb設備的詳細信息
root@ubuntu:/sys/bus/usb/devices/usb1# ll
total 0
drwxr-xr-x 6 root root 0 Nov 26 21:21 ./
drwxr-xr-x 4 root root 0 Nov 26 21:21 ../
drwxr-xr-x 10 root root 0 Nov 26 21:21 1-0:1.0/
drwxr-xr-x 5 root root 0 Dec 15 23:10 1-1/
-rw-r--r-- 1 root root 4096 Dec 15 23:40 authorized
-rw-r--r-- 1 root root 4096 Dec 15 23:40 authorized_default
-rw-r--r-- 1 root root 4096 Dec 15 23:40 avoid_reset_quirk
-r--r--r-- 1 root root 4096 Nov 26 21:21 bcdDevice
-rw-r--r-- 1 root root 4096 Nov 26 21:21 bConfigurationValue
-r--r--r-- 1 root root 4096 Nov 26 21:21 bDeviceClass
-r--r--r-- 1 root root 4096 Nov 26 21:21 bDeviceProtocol
-r--r--r-- 1 root root 4096 Nov 26 21:21 bDeviceSubClass
-r--r--r-- 1 root root 4096 Dec 15 23:40 bmAttributes
-r--r--r-- 1 root root 4096 Dec 15 23:40 bMaxPacketSize0
-r--r--r-- 1 root root 4096 Dec 15 23:40 bMaxPower
-r--r--r-- 1 root root 4096 Dec 15 23:40 bNumConfigurations
-r--r--r-- 1 root root 4096 Dec 15 23:40 bNumInterfaces
-r--r--r-- 1 root root 4096 Nov 26 21:21 busnum
-r--r--r-- 1 root root 4096 Dec 15 23:40 configuration
-r--r--r-- 1 root root 65553 Nov 26 21:21 descriptors
-r--r--r-- 1 root root 4096 Dec 15 23:40 dev
-r--r--r-- 1 root root 4096 Nov 26 21:21 devnum
-r--r--r-- 1 root root 4096 Dec 15 23:40 devpath
lrwxrwxrwx 1 root root 0 Nov 27 20:06 driver -> ../../../../../bus/usb/drivers/usb/
drwxr-xr-x 3 root root 0 Dec 15 23:40 ep_00/
-r--r--r-- 1 root root 4096 Nov 26 21:21 idProct
-r--r--r-- 1 root root 4096 Nov 26 21:21 idVendor
-r--r--r-- 1 root root 4096 Dec 15 23:40 ltm_capable
-r--r--r-- 1 root root 4096 Nov 26 21:21 manufacturer
-r--r--r-- 1 root root 4096 Dec 15 23:40 maxchild
drwxr-xr-x 2 root root 0 Nov 26 21:21 power/
-r--r--r-- 1 root root 4096 Nov 26 21:21 proct
-r--r--r-- 1 root root 4096 Dec 15 23:40 quirks
-r--r--r-- 1 root root 4096 Nov 26 21:21 removable
--w------- 1 root root 4096 Dec 15 23:40 remove
-r--r--r-- 1 root root 4096 Nov 26 21:21 serial
-r--r--r-- 1 root root 4096 Nov 26 21:21 speed
lrwxrwxrwx 1 root root 0 Nov 26 21:21 subsystem -> ../../../../../bus/usb/
-rw-r--r-- 1 root root 4096 Nov 26 21:21 uevent
-r--r--r-- 1 root root 4096 Dec 15 23:40 urbnum
-r--r--r-- 1 root root 4096 Dec 15 23:40 version
二、使用debugfs
1、掛載 debugfs 到 /sys/kernel/debug 路徑下
root@ubuntu:mount -t debugfs none /sys/kernel/debug
2、執行上述步驟之後,在 /sys/kernel/debug 就會生成如下的文件
root@ubuntu:/sys/bus/usb/devices# cd /sys/kernel/debug/
root@ubuntu:/sys/kernel/debug# ll
total 0
drwx------ 22 root root 0 Nov 26 21:21 ./
drwxr-xr-x 7 root root 0 Nov 26 21:21 ../
drwxr-xr-x 2 root root 0 Nov 26 21:21 acpi/
drwxr-xr-x 32 root root 0 Dec 4 16:30 bdi/
drwxr-xr-x 2 root root 0 Nov 26 21:21 bluetooth/
drwxr-xr-x 2 root root 0 Nov 26 21:21 cleancache/
drwxr-xr-x 2 root root 0 Nov 26 21:21 dma_buf/
drwxr-xr-x 4 root root 0 Nov 26 21:21 dri/
drwxr-xr-x 2 root root 0 Nov 26 21:21 dynamic_debug/
drwxr-xr-x 2 root root 0 Nov 26 21:21 extfrag/
drwxr-xr-x 2 root root 0 Nov 26 21:21 frontswap/
-r--r--r-- 1 root root 0 Nov 26 21:21 gpio
drwxr-xr-x 3 root root 0 Nov 26 21:21 hid/
drwxr-xr-x 2 root root 0 Nov 26 21:21 kprobes/
drwxr-xr-x 3 root root 0 Nov 26 21:21 kvm-guest/
drwxr-xr-x 2 root root 0 Nov 26 21:21 mce/
drwxr-xr-x 2 root root 0 Nov 26 21:21 pinctrl/
-r--r--r-- 1 root root 0 Nov 26 21:21 pwm
drwxr-xr-x 2 root root 0 Nov 26 21:21 regmap/
drwxr-xr-x 3 root root 0 Nov 26 21:21 regulator/
-rw-r--r-- 1 root root 0 Nov 26 21:21 sched_features
-r--r--r-- 1 root root 0 Nov 26 21:21 sleep_time
-r--r--r-- 1 root root 0 Nov 26 21:21 suspend_stats
drwxr-xr-x 7 root root 0 Nov 26 21:21 tracing/
drwxr-xr-x 3 root root 0 Nov 26 21:21 usb/
drwxr-xr-x 2 root root 0 Nov 26 21:21 virtio-ports/
-r--r--r-- 1 root root 0 Nov 26 21:21 vmmemctl
-r--r--r-- 1 root root 0 Nov 26 21:21 wakeup_sources
drwxr-xr-x 2 root root 0 Nov 26 21:21 x86/
3、cat 設備節點
執行下述命令之後會以特定格式列印目前USB匯流排上所有USB設備的信息如下:
root@ubuntu:/sys/kernel/debug# cat usb/devices
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 17/900 us ( 2%), #Int= 1, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0001 Rev= 3.13
S: Manufacturer=Linux 3.13.0-32-generic uhci_hcd
S: Proct=UHCI Host Controller
S: SerialNumber=0000:02:00.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0e0f ProdID=0003 Rev= 1.03
S: Manufacturer=VMware
S: Proct=VMware Virtual USB Mouse
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=1ms
T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 3 Spd=12 MxCh= 7
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0e0f ProdID=0002 Rev= 1.00
S: Proct=VMware Virtual USB Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=255ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 6
B: Alloc= 0/800 us ( 0%), #Int= 1, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev= 3.13
S: Manufacturer=Linux 3.13.0-32-generic ehci_hcd
S: Proct=EHCI Host Controller
S: SerialNumber=0000:02:03.0
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 7 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1
P: Vendor=0bda ProdID=0129 Rev=39.60
S: Manufacturer=Generic
S: Proct=USB2.0-CRW
S: SerialNumber=20100201396000000
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=06 Prot=50 Driver=rts5139
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 3 Ivl=64ms
至於信息的詳細解析可以參照 Linux源代碼中 Documentation/usb/proc_usb_info.txt 文件。現摘錄其中對該格式的詳細解釋:
| | |__Proct ID code
| |__Vendor ID code
|__Device info tag #2
String descriptor info:
S: Manufacturer=ssss
| |__Manufacturer of this device as read from the device.
| For USB host controller drivers (virtual root hubs) this may
| be omitted, or (for newer drivers) will identify the kernel
| version and the driver which provi
Ⅲ 如何刻錄linux系統盤到u盤
BIOS 和 UEFI 可啟動 USB
GNU/Linux
#ddbs=4Mif=/path/to/linux.isoof=/dev/sdx&&sync
/dev/sdx用lsblk查看替換
Windows
1、Rufus(rufus. akeo . i e / ? lo ca le =zh _CN /)
cfdisk/dev/sdx
mkfs.vfat-F32/dev/sdx1
dosfslabel/dev/sdx1USB_STICK
Windows
在資源管理器中右鍵USB盤選擇格式化
Ⅳ linux裝到移動硬碟中啟動,求高手,重謝!!
下面的文章是來自 IBM developerworks 的一個非常好的文章可以清楚地解釋如何啟動火線和USB設備 Linux操作系統的原理。
希望它在對任何有興趣把Linux操作系統安裝到外部設備的人有所幫助。
原始的網址http://www-128.ibm.com/developerwor...l-fireboot.html
從火線設備上啟動Linux
可移動驅動器上安裝Linux操作系統
難度等級:中等
Martyn Honeyford([email protected]) IBM英國實驗室 軟體工程師
宣可達([email protected])翻譯 webzi@linuxsir
2004年7月15日
2005年7月26日開始翻譯,7月28日完成。
翻譯經驗不多。如有不妥,歡迎EMAIL交流。
使用一個外部驅動器是一個極棒的方法,能給你的老硬體帶來新生和讓你在你不能(或者不想)改變內置硬碟的計算機上使用Linux系統。
假設你想使用Linux在一個雙啟動環境,但是你的計算機硬碟又沒有任何空餘的空間。一種解決方法是使用"live"的linux發行版本象是Knoppix,他們這能直接從CD啟動運行。 對於偶爾使用,這是一種可行的辦法,但是它有若乾的劣勢:
*你將會仍然需要些固定文件存儲。如果你只是操作少量的文件,一張1.44MB的磁碟就可以勝任,或者一個USB快閃記憶體棒適合中等量的文件,但是這些都不夠理想。
*當使用一個LiveCD 的時候,最困難、最糟糕、最不可能的是安裝你自己的應用程序或者定製現存的程序。
*使用LiveCD在性能上的犧牲,在啟動初所有的設備檢測時尤為明顯,同樣發生使用中(所有的文件從 CD 載入通常是比從硬碟中載入慢的多)。
的確,還有其他可選方案。舉例來說,你可以買額外的內置驅動器並且在此安裝Linux操作系統。但是常常,你可能沒有任何空閑的擴展阜。(這特別容易發生在筆記本上,通常他們只允許一個內置硬碟。)
或者,你可以使用一個較大的硬碟取代當前的硬碟, 獲得額外空間用於安裝 Linux操作系統。 然而,這的確是一個耗費大量時間的方案,需要你重新安裝現有的操作系統在新的硬碟, 重新安裝和配置你所有應用程序, 和恢復所有數據。
更好的解決方案是購買一個外置硬碟並安裝 Linux操作系統。 這樣使得你在想使用Linux系統時候不必涉及現有的硬體和軟體而只是簡單連接外部驅動器。
可選的可移動設備
可用於安裝Linux操作系統設備涵蓋磁碟驅動器、USB-快閃記憶體設備、通過USB/火線連接的硬碟等等。
在一個小容量的設備中安裝linux是可行的,例如在一個1.44MB的磁碟或者一個32MB的USB棒中,他們通常(必須)為特定目的定製,採用裁減的發行版本,例如,拯救中斷的安裝過程。
外置的硬碟在為使用一個常規目的的linux系統提供最大的靈活性同時,帶來一個合理的成本。
許多不同的廠商提供許多種不同容量的外置的驅動器。 (Maxtor, 西西部數據, 等等)。這些驅動器還會包含一個外置盒子,用於固定標準的 3-1/2 寸或 2-1/2 寸 IDE 硬碟。 然後這些驅動器經由 USB 或 IEEE1394(火線) 連接到計算機。
USB 受到在二個主要的版本中的影響,1.1 和 2.0. 1.1 版速度為12 Mbit/ s(每秒1Mbit) ,而 2.0 版支持最高達到 480 Mbit/s 的傳輸速度。大多數2.0相容的驅動器也向後兼容1.1,通常建議盡量不要採用1.1介面除非沒有其他的選擇(因為其低速不適應此環境。)
火線標准也定義若干不同的速度, 實際上,大部分人所指的FireWire ,是「FireWire400」標准 ,支持最大傳輸速度為 400 Mbit/s 。
USB2.0和火線在速度上不分伯仲: 雖然 USB 2.0 有比較高的傳輸速度, 但是實際中因為協議的不同兩者速度十分的接近。如果你的計算機擁有2種介面, 最好使用USB而非火線(理由我將後將解釋), 但是如果只有火線介面,當然你就選擇它了。為了實現最大的靈活性, 可以選擇眾多同時支持 USB 2.0 和火線的驅動器中的一種。(像我稍後將在這一個文章中使用的那個一樣。)
對於那些沒有必須的介面, PCI(對於桌面) 和 PCMCIA(對於筆記本型電腦) ,現在火線和USB 2.0擴展卡也並非貴不可及: 舉例來說, 我稍後將在文章中提及PCMCIA火線擴展卡大約為10英鎊.($20 美元以下)
為了達到本文的目的,我已經購買 5-1/4寸外置驅動器的硬碟盒。 這是一件非常靈活的硬碟盒,並沒提供驅動器而且能固定任何的標准 IDE 設備,包括 3-1/2 寸驅動器和像CD-RW/DVD-RW等5-1/4 寸 IDE 設備 。硬碟盒兼有 USB 2.0 和火線介面。
為了把硬碟盒連接到我的IBM Thinkpad T30筆記本電腦,我也購買了一個 PCMCIA 火線轉接卡。 ( 因為內置的USB 介面只支持USB 1.1)
硬碟盒和火線轉接卡相對比較便宜。 (大約分別為50英鎊和10英鎊。)
測試期間, 我把一個手邊閑置的13 GB 3-1/2 寸 IDE 硬碟放進硬碟盒——對於真實情況,我會買一個較大的容量驅動器, 現在另購一個硬碟相當低廉( 大約每個50英鎊!)
Linux 支持
正如你所期待,linux對這些硬碟盒支持的確非常好。任何遵從SBP(串列匯流排協議)標準的大儲存設備在linux中使用非常簡單。
大體上, 使對這些裝置的支持你能夠將會需要在你的核心中支持某些選項( 或直接地編譯或通過模塊。)
對於USB和火線,SBP 裝置通過SCSI模擬來實現-- 也就是說,Linux會把他們當作SCSI硬碟來處理 。 這是在 Linux 世界裡面使用存儲設備的一個常規方法。 ( 舉例來說, IDE CD/DVD設備通常通過SCSI模擬來連接)。基於以上原因,下列的選項需要被內核支持:
* SCSI support
* SCSI emulation
* SCSI disk support
除此之外,不同連接方式需要一下的內核支持:
* 針對火線:
* IEEE1394 support
* OHCI1394 support
* RAW1394 support
* SBP-2 support
* 針對USB:
*(host-side) USB support
* OHCI support
* UHCI support
* USB mass-storage support
明顯地,你還必須為其他的硬體 ( 如顯卡等等)編譯常規的支持, 而且可能需要一些額外的模塊,取決你的具體硬體。
舉例來說,我正在使用 PCMCIA(cardbus) 火線轉接卡,因此,我還需要增加:
* PCMCIA support
* cardbus support
安裝
現在我們有很完美外置驅動器,我們將開始安裝在其安裝Linux美妙之旅。
目前最簡單的安裝linux方法(當然僅個人意見) , 是連接你的所有硬體;(我的情況是,插入火線轉接卡,連上轉接線盒驅動器,然後打開驅動器的電源) 然後從你選擇的發行版安裝CD上啟動你的計算機。
我採用的發行版是Gentoo(資源詳見鏈接),因此,我用了最新的 「通用」x86 LiveCD。 (2004.1) 其他的發行版本必須的步驟大致和此相似。
一旦你使用安裝CD啟動,要藉由一點運氣讓他要辨認出你的驅動器。 磁碟應該出現在/dev/sdX, X 是一個小寫字母從「a」開始。在我的系統上,外置硬碟被當做 /dev/sda, 但是如果你有其他的 SCSI硬碟,這數字將會改變;( 或模擬了SCSI硬碟) 那種情況下,它可能是 /dev/sdb 或一些其他的字母。 如果你的驅動器不能被自動檢測到, 就需要進一步採取措施 -- 舉例來說,你可能必須打開啟動選項使用火線或者PCMCIA介面, 或你可能必須手動裝載一些內核模塊 , 或其他一類選項。 (資源詳見故障發現與維修指導鏈接)
一旦驅動器被辨認出來,安裝過程種其運作起來就像一個內置的硬碟。然後就你可以對其分區並且用常規方法安裝linux。
有一句話我著重要提醒,小心選擇何處安裝boot loader(通常是GRUB和LILO)--我建議不要裝到主引導記錄(MBR)中( 通常是默認值) 而是裝到外置驅動器的根分區 ( 或/boot分區,如果你單獨分了一個話)。
既然我們已經安裝 Linux 在這個設備上,我們想要從上面啟動它。 事情到此開始變的有點復雜了。
啟動
在我前討論在如何的新驅動器上面啟動,我要講解一些boot loader的小知識。
boot loader程序通常安裝在計算機的第一個硬碟的MBR上。 當boot loader被調用 (BIOS自動地運行MBR里的代碼),它通常顯示一份可啟動操作系統的菜單。以便選擇一個給定的操作系統啟動計算機。
兩件細節在這個章節中應該注意:
* 操作系統選擇菜單(通常)從磁碟中載入。
*為了啟動有關的操作系統, boot loader 需要從磁碟中讀取相關的內核。
在操作系統被裝載之前 ,以上各步驟已經執行,這意味著所有的磁碟讀取在BIOS調用時。 這是一個必須的前提,即,為了直接啟動磁碟,你的 BIOS必須支持通過火線或USB被連接的磁碟。通常能在BIOS中看到關於從這些設備上啟動選項。 火線BIOS支持現在的確非常的少見,但是 USB 支持正在變得相當的平常。 因此,如果你正在使用一部相對比較新的計算機上的USB介面,應該可以直接啟動驅動器進Linux。
當經由 USB 連接,在安裝外部的驅動器的 MBR 的幼蟲之後,我能夠直接地啟動它。 當以被連接的磁碟片啟動的時候,只是進入 BIOS 裝備公用程序。 外部的磁碟片將會出現如一個一般的硬碟: 移動它,如此它在啟動次序中的內在驅動器之前。
我也能夠在一個內置的硬碟的MBR上安裝一個boot loader而且使用其啟動USB硬碟(在GRUB中被成為hd1)。 如果你正在使用火線, 有可能你的 BIOS 將會無法直接地啟動硬碟,而且你需要更多一點步驟。
幸運的是,由於 Linux 的多樣性,這有非常容易解決,如果你不能直接地啟動,( 我就是這樣的情況,使用一個PCMCIA轉接卡!) 你能運行初始啟動步驟,來自一個支持的設備 , 像是一台軟碟機,CD-ROM,USB棒,或在主硬碟上的小分區, 然後使用外部的驅動器繼續其他步驟。
創建一個啟動鏡像
我們有2種方法啟動:
*單階啟動
內核啟動, 掛載根分區文件系統, 接著調用初始化教本繼續初始化( 通常是/sbin/init)
*雙階啟動 (initrd)的啟動
內核啟動,掛載一個初始ram disk (initrd),進一步運行定製的初始化, 然後掛載根分區文件系統繼續初始化(同樣, 通常調用/sbin/init)
每種方法都有它自己的優點和缺點。
單階啟動
為了要使用一個單階的啟動,我們需要建立一個內核包含掛載一個根分區文件系統所需的所有驅動程序。( 任何其他的驅動能作為模塊編譯並在根分區載入時候進行常規初始化。)
如果我們正在從像軟盤這樣的一個非常小的裝置嘗試啟動, 最好的方式是創建的一個正合適內核,編譯進所有掛載根外部分區系統所需驅動 -- 而且編譯其他的作為模塊。 舉例來說,我的內核編譯進了SCSI支持, PCMCIA 支持, IEE1394 , SBP ,和其他相似的支持, 但是其他的(包括顯卡支持,網路設備支持,等等)當做模塊編譯並儲存在根分區上(在外部的驅動器的),而不是存儲在軟盤上。
這種方法的主要問題是需要我們給內核源代碼打補丁-- 那是一種最糟糕的痛苦(當新的內核發布),而真正的問題是如果補丁沒有在維護,這樣就不能跟上內核的變化。
你可能以為如果計算機BIOS支持USB和火線直接啟動,我們能避免發生以上的2個問題。 不幸地,事情不是這樣:這一個方法使用BIOS在啟動時調用磁碟,一旦內核開始初始化, BIOS就失去了作用,而且使用內核驅動來調用磁碟-- 所以你仍然會碰到同樣的問題。
二階啟動
內核2.0.X版本 ,添加了一個有趣的功能到內核 -- 使用「initial RAM disk(初始內存磁碟)」(or initrd)來實現二階啟動。
簡言之,內核一概既往的啟動;掛載一個創建在內存里迷你的根分區文件系統取代掛載「真正」的根分區系統。 無論任何命令都在這個初始環境中執行在「真正」的根分區系統被掛載之前直到我們切換到真正的根分區文件系統並銷毀初始內存磁碟(initial RAM disk)。
這點在各種環境中都非常有用,但是我們的目標僅僅是簡單的利用我們的迷你環境去重新掃描SCSI匯流排,等待外部驅動器識別,然後用它切換到我們真正的根而後繼續啟動。
使用這種方法,我們需要創建2個文件,一個內核和一個初始鏡像文件。
內核僅是一個內建啟動鏡像(initrd)支持常規內核。 initrd 鏡像是一個包涵我們迷你根分區系統的環路(loopback)文件系統鏡像。 (該鏡像可以有選折地使用gzip壓縮來減小它的大小)。
你能在資源章節里找到關於如何創建和定製你自己的初始鏡像的更多信息。
在鏡像文件里,有一個linuxrc的文件。當鏡像給載入時,該文件自動運行,所以請確定其有運行許可權!為了達到我們的目的,linuxrc文件非常的簡單:
列舉 1. initrd linuxrc
#!/bin/sh
REAL_ROOT=/dev/sda1
# mount the /proc filesystem
mount -t proc none /proc
#for scsi-emulation (SCSI模擬)
# modprobe sd_mod
#for pcmcia (PCNCIA卡)
# modprobe pcmcia_core
#for FireWire (火線)
# modprobe ieee1394
# modprobe ohci1394
# modprobe raw1394
# modprobe sbp2
#for USB (USB)
# modprobe usbcore
# modprobe ohci-hcd
# modprobe uhci-hcd
# modprobe usb-storage
# loop rescanning the scsi bus + rerunning devfsd
retries=5
i=1
until [ -e $REAL_ROOT ]
do
if [ $i -gt $retries ]
then
echo "Unable to mount real root ($REAL_ROOT) - Giving up!"
/bin/ash
exit
fi
echo "Real root ($REAL_ROOT) not found, retrying ($i)"
sleep 1
echo "scsi add-single-device 0 0 0" > /proc/scsi/scsi
echo "scsi add-single-device 1 0 0" > /proc/scsi/scsi
echo "scsi add-single-device 2 0 0" > /proc/scsi/scsi
/bin/devfsd /dev -np
i=$((i+1))
done
#umount /proc as it will be remounted by the normal init process
(解除掛載/proc分區當它會給常規的INIT進程重新掛載)
umount /proc
#now we simply exit, and the normal boot process should continue
(現在我們可以退出了,常規的啟動進程將會繼續)
exit 0
我們正在做的是載入適當的模塊去支持外部驅動器: 請按需注視相應行。 (我把所有需要的支持編譯進內核,因此不需要模塊)。 然後循環, 再掃描 SCSI 匯流排 (回應一個命令到/proc虛擬文件系統下一個特別文件並調用devfsd程序) 直到根分區設備出現(我的情況是/dev/sda1 )。在我的情況,被訪問的火線模擬SCSI匯流排是1 0 0,但是並不影響嘗試部分其他的匯流排 -- 如果你知道將會使用哪一個,你可以裁減這個教本。 同時, 如果你有其他的 SCSI 設備 (或模擬 SCSI設備), 驅動器可能有一個不同的字母。(例如,/dev/sdb1) 而且如果你沒有使用外置驅動器上的第一個分區, 你將會需要使用一個不同的數字。( 例如,/dev/sda2)
現在我們需要做的全部是復制相關的文件進initrd鏡像.( 你能夠使用mount -o loop 命令掛載未壓縮的鏡像)尤其,我們需要確定我們有 linuxrc 文件、所有被用到的命令和其依賴的庫。 這個(未掛載的)鏡像可以有選折的壓縮。
復制內核 (bzImage) 和 initrd 鏡像 (initrd.gz)到磁碟。
最後的步是在磁碟上安裝一個boot loader, 而且用下列的選項啟動內核: kernel bzImage root=/dev/sda1 initrd=initrd.gz.
你現在應該可以使用磁碟來啟動了:它會從軟盤中載入內核,載入initrd鏡像入內存,然後從那裡繼續常規啟動。這點以後,磁碟就可以拿開了。
如果磁碟不合適 ( 例如,計算機沒有軟碟機),任何設備在BIOS能用於啟動都可以使用。 個人而言,我就使用一個小小的32MB的USB棒來達到這個目的。
參考資料:http://www.linuxsir.org/bbs/showthread.php?t=211021
Ⅳ 用裝IS0的win7系統鏡像文件的啟動U盤如何裝系統
1、首先需要將ISO文件使用像刻錄光碟一樣的方式刻錄到U盤,而不是直接將文件復制進U盤(這樣U盤才可以引導)使用的工具可以是ISO TO USB 或者 UltraISO這個軟體。
2、以 UltraISO這個軟體為例,先插入U盤(空白U盤,否則U盤內資料會被清空)使用 UltraISO打開ISO文件,再點擊菜單欄的啟動菜單-寫入硬碟映像-稍等幾分鍾即可製作完成。
3、將製作好的U盤插入電腦USB介面,重啟電腦,在出現LOGO時按F12鍵選擇以U盤啟動(或者按DEL進入BIOS設置界面更改U盤為第一啟動順序,具體以用戶電腦型號的更改方式為准)
4、此後安裝過程同光碟安裝一樣。
Ⅵ 如何用U盤製作一個可以安裝多個不同版本的Linux系統ISO鏡像文件的啟動盤
U盤引導多個linux鏡像安裝,同時支持BIOS和UEFI模式
准備開整
基本步驟
步驟一: 格式化U盤
注意點: bios_grub標記的分區
步驟二: 安裝grub到U盤
步驟三: 添加grub菜單
參考文獻
前言: 生命不息,折騰不止。在折騰中進步,在踩坑中成長。
准備開整
U盤一枚(4G容量以上,備份好數據,一會可能要重新格式化)
可用的任意操作系統,64位(32位就不要折騰UEFI了)
UEFI與ESP預備知識,限於篇幅就不詳細介紹了,自己看文檔原理
USB啟動的原理就不多做講解了,有興趣的話找找相關的文檔,介紹很多,也很詳細,跟硬碟引導過程差不多。注意的是BIOS+MBR模式和UEFI+GPT模式是不同的。
基本步驟
先說一下我的環境,金士頓16G U盤一個,操作系統是Deepin 2014.3 64bit,基於Ubuntu 14.04,其他類似的系統可以類比。Linux系統本來就使用grub引導(不要在CentOS/RHEL 6及以下版本折騰了,那個是Grub Legacy,已經不維護了),折騰起來要比其他操作系統方便的多,軟體倉庫就有grub相關的軟體包,也不需要單獨安裝太多東西。Windows下可以用grub2win,原理是一樣的。
步驟一: 格式化U盤
想要支持UEFI引導,GPT是不可少了,而且GPT是兼容MBR了。所以第一步需要先將U盤格式化為GPT分區,這樣efi文件可以和MBR共存,實現UEFI和BIOS雙支持。
如果U盤已經是
Linux下支持GPT分區的工具: parted, gdisk。大致的步驟就是使用gdisk(命令和操作方式幾乎和fdisk完全一樣,只是支持GPT),或parted對U盤重新分區,然後標記ESP。如果用gdisk,只要給分區標記EF00編號即可,如果用parted,給分區boot標記即可。命令行就不演示了,很簡單,我這邊截圖使用圖形化工具gparted分區,同樣結果也是GPT分區。
圖形化的gparted操作也很簡單,建立GPT分區表,分區,格式化為FAT32(注: 盡管ESP支持多種分區,但是為了通用性與兼容性還是建議FAT32),標記分區為boot
這樣U盤處理就完成了,使用gdisk或parted顯示一下U盤的信息,看到這樣的信息就是OK的
$ sudo gdisk-l/dev/sdb# 根據你的U盤的名字修改dev設備
GPT fdisk(gdisk)version0.8.8
Partitiontable scan:
MBR:protective# <========================= 保護性的MBR,這個是GPT兼容MBR的一種設計
BSD:notpresent
APM:notpresent
GPT:present# <========================= 看這里,已經是GPT了
Foundvalid GPTwithprotective MBR;usingGPT.# <========== 這里的顯示也說明是GPT分區
Disk/dev/sdb:30736384sectors,14.7GiB
Logicalsector size:512bytes
Diskidentifier(GUID):022EE53E-9641-4D28-9394-0826CFA24730
Partitiontable holds up to128entries
Firstusable sectoris34,lastusable sectoris30736350
Partitionswill be aligned on2048-sector boundaries
Totalfree spaceis4029sectors(2.0MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 30734335 14.7 GiB EF00 # <======== 這里很關鍵,看Code是EF00,想要分區成為ESP必須設置這個標記,如果手工用gdisk別忘了這一步
$ sudo parted /dev/sdb print
Model: Kingston DataTraveler 3.0 (scsi)
磁碟 /dev/sdb: 15.7GB
Sector size (logical/physical): 512B/512B
分區表:gpt # <======= GPT分區
Disk Flags:
注意點: bios_grub標記的分區
這個要特別強調,bios_grub標記的分區必須存在,否則BIOS模式下無法使用。
有關bios_grub標記的分區說明:https://help.ubuntu.com/community/Installation/UEFI-and-BIOS#Make_a_system_bootable_in_UEFI_as_well_as_BIOS
這里我簡單提及一下這個標記的作用。上面提到過,GPT兼容MBR,如果要讓grub在GPT上使用MBR模式安裝的話,需要設置這個標記。按照ubuntu官方文檔(上面那個文檔,想了解詳細的話必看!),這個分區有以下幾個特點:
1MB容量
不需要格式化
設置bios_grub標記
如果用gdisk, parted, gparted這些工具分區的時候,你會發現總會有一個1MB的剩餘空間,就是干這個用的,現在,我只需要給這個剩餘空間分區,並打上bios_grub標記就行了(EF02),不用格式化。parted操作也類似
至此分區的步驟就完成了。如果你已經是GPT分區了,就不用重新分區了,只要處理成ESP就行了
步驟二: 安裝grub到U盤
這一步相比上一步已經簡單許多了,但還是有一個小坑需要注意。先貼命令:
命令沒有任何難度,但是有幾個坑需要特別注意:
Ubuntu的分包問題grub默認的target是i386-pc,這個target包含在grub-pc這個包,如果你的系統使用BIOS+MBR安裝,這個包默認是存在的。x86_64-efi這個target包含在grub-efi這個包,只有你的系統使用UEFI+GPT方式安裝這個包才會存在。如果某個target報錯,錯誤信息類似於grub-install:error:/usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.這樣的話,就需要安裝grub-pc或grub-efi之後再試。
安裝到ESP要加–removable這個參數 這個參數專門針對於可移動設備,一定要加
bios_grub標記的分區 如果按照上面的分區過程操作了,增加了這個標記的分區,安裝grub的時候會自動識別這個標記的分區並成功安裝grub,否則報錯:
Installing for i386-pc platform.grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.步驟三: 添加grub菜單
如果前面都沒問題的話,最後就只剩下添加grub菜單了。在/mnt/boot/grub這個目錄下,新建grub.cfg配置文件就行了。grub2的語法很復雜,圖省事就從網上各種摘抄拼接就行了。比如我把linux發行版的iso鏡像都扔到了boot/iso這個目錄,於是乎我的grub.cfg成了這樣:
根據自己的需求增刪改改就行了。想進一步美化的話,grub2關於美化的文檔也很多,就不贅述了。
注意:不要使用虛擬機測試,因為虛擬機不能完整模擬主板。因此不一定能引導你的U盤,讓你誤以為製作失敗了。盡可能用真機去測試引導。
最後,貼一個效果圖,可以看到BIOS模式和UEFI都可以引導了
補充: 稍作美化一下效果,只不過那個從本地硬碟啟動還沒實現,需要看看別人怎麼寫的。
Ⅶ 如何用u盤製作成linux系統的安裝盤
以製作Ubuntulinux系統為例:
1、首先要下載Ubuntu系統,在網路搜索Ubuntu,打開Ubuntu官網。
Ⅷ 想自己買個優盤來做個電腦系統,怎麼做
製作系統啟動盤可以分為三個步驟:
從網上下載安裝一個系統啟動盤製作工具,免費的;
從網上下載一個系統鏡像文件,免費收費的都有;
插入U盤,打開系統啟動盤製作工具,選中已准備的U盤和系統鏡像,一鍵傻瓜式自動製作系統啟動盤。
系統啟動盤製作工具常用的有UltraISO,但我更推薦isotousb;
系統鏡像文件後綴通常為.iso,網上有很多免費的系統鏡像文件,比如Linux系統,免費的有Ubuntu, Debian等。
第三步並不復雜,看到軟體界面自己都能夠理解如何操作。
有不懂的地方可以追問。