一次slackware安装
12年出了14.0版的slackware linux。現在本子64bit。于是官網下載了14.0 64bit版的iso鏡像。
老本子32bit的,用了多年,光驅讀取不能,也沒有替換過。現在刻錄光盤,保存時間據說有限。之前就一直使用閃存、移動硬盤做外部啟動,無內置硬盤參與的啟動。
之前安裝在移動硬盤擴展分區的32bit 13.37版,許久不用,在現在本子上啟動,kernel報錯,空指針引用錯誤。是于今日開始了新版安裝,鏡像存了幾個月了。
win7上,通過bcdedit,依然可以引導grub4dos,之后可以引導包括32bit win pe,linux磁盤img鏡像在內的各種系統。
iso發行文件,7zip提取/usb-and-pxe-installers/usbboot.img,用來從grub引導安裝。
內置硬盤,win7 bootloader加載grub4dos,grub4dos引導slackware內附帶usb-and-pxe-installers目錄下usbboot.img,用途顧名思義,usb和pxe啟動用的。但是作為整體磁盤img鏡像,于grub4dos可以映射到fd0當軟盤啟動。(作為軟盤啟動的存儲設備容量不能超過1GB的限制好像是有的)
按照光盤根目錄的安裝文檔解釋,可替代的安裝方式,有光盤、nfs、usb、harddrive等等。
刻錄光盤比較慢,而且系統總是在更新的,光盤包不準什么時候會出現讀取不能。刻u盤,印象比較慢,而且比較“破壞性”。
掛載外置1TB希捷硬盤,從grub4dos引導usbboot.img啟動,按兩次回車(選擇加載核心和鍵盤布局),進入shell,可以識別和訪問外置硬盤。mount掛載指定ntfs-3g分區格式(現在自動使用這個),訪問ntfs分區。
之前的移動硬盤擴展分區,用PartedMagic從九百來G里調整出了60來G的擴展分區。之后主分區容量太大,無法從grub4dos讀取內容。grub2沒有試過來的。
之前的slackware,從12版開始安裝,后來是13.37。按照網絡某流行帖子,把/var,/usr,/tmp,/home,/boot指定在不同分區,加上/,swap,比較繁瑣。
之前有一老外寫的帖子,他的臺式機,內置一塊一樣的冗余硬盤。初裝好系統之后,克隆到另一塊硬盤上。他主題講的linux不需要碎片整理,他復制文件,和利用linux分區格式特性,碎片即文件非連續存儲,不會影響系統性能。
安裝新版的時候,先按照移動硬盤每個分區下文件的內容對照,猜測出對應掛載目錄;之后找著/etc/fstab,cat列出來,水筆抄寫在了手上。
這里重申一下用到的命令。
mkinitrd
在/boot目錄下制造initrd文件用于從任意存儲設備引導本分區。initrd理解為初始化內存磁盤(鏡像)文件,基礎的“/”目錄內容。vmlinuz,差不多是linux kernel吧。
參數這里使用的
-c -m ext4 -k 3.6.xxxx -f ext4 -r /dev/sdb7 -w 16
-c清除之前建立的initrd樹;
-m額外加載的分區格式模塊,訪問特定分區格式,當kernel沒有包括能理解所用分區格式的模塊的時候使用。
多個分區格式使用冒號“:”分隔。如 -m ext4:ext3:hdfs
-k指定啟動使用的內核版本號。usbboot.img鏡像的版本號和14.0發行版版本號并不一致。但是沒有關系。mkinitrd在系統下找不到需要版本的目錄會給出提示,退出。自己到那目錄上一級找一下就找到了。
-f指定“/”,root所在分區的文件系統格式,必須和-r一起使用。
-r指定“/”所在分區。其實移動硬盤,更多被建議使用那種唯一識別id表示設備,取代/dev/sdb7,主要是設備號碼不固定,可能識別sdc,sdd等。這里沒有額外的存儲設備,簡單實用。
-w是initrd內存鏡像盤啟動是等待移動硬盤被激活的等待時間。我的外置硬盤,當長時間沒有讀寫,自動休眠。這時候異步讀寫導致超時失敗。開機后在引導前它會休眠,。同樣在操作系統睡眠后它也會休眠,linux恢復后直接死機,沒繼續探究解決方式。
參數-w 16,即等待16秒鐘,使移動硬盤從休眠到運轉。
chroot .
改變“/”,掛載到當前目錄。重定位系統的根位置。可以掛不同的磁盤、linux系統,方便系統修復。執行exit,恢復到之前默認狀態。
xwmconfig
字符圖形界面,選擇使用的GUI。有的GUI可能出現配置錯誤,無法啟動,或啟動后莫名錯誤,而失效。個人使用xfce。GSB的gnome也可以。
安裝過程:在usbboot啟動后進入shell,在“/”下建立一個目錄,掛載E盤,建立第二個目錄,掛載E盤下的iso光盤鏡像 (可替代的方式解壓iso到E盤根目錄下的目錄里)。注意:安裝程序說有兩個目錄不可以用于掛載內容。在mnt下掛載的任何內容,會被安裝程序自動卸載。
執行setup。
出現圖形界面。從前到后執行必要的選項。大概的步驟。0
第一步設定swap分區。我的是/dev/sdb5
之后設定“/”分區。以及想作為掛載點的目錄和對應分區。安裝程序建議的,/home和/usr/local,掛載在其他分區。分別類似于windows的“我的文檔”目錄和自己安裝軟件的目錄。中間要求格式化,或者檢察磁盤壞位置,或者不格式化。
設定安裝程序來源,直接指向“/”下剛才掛載iso的目錄的/slackware64安裝程序包目錄。
選擇需要安裝的程序包的大類。我全選了,除了kdei,kde界面的國際化語言支持。以前這樣可以安裝快一些。但是現在本子是快的可以,主要解壓pkg、復制…
有一步,要求選擇細分的程序包。我用的推薦的full,全部。值得注意的是有一個“newbie”選項,據說就是full,不曉得同胞對牝,Tao怎么看。
字符集,我選擇的gb18030大字符集,兼容windows,但中文還是沒有顯示。
要求安lilo bootloader的時候,不要選擇第三項MBR。不然newbie會有大問題。選擇第一項寫入root,“/”所在分區的“超級塊”,從分區引導(grub4dos和win7bcd應該支持)。第二個選項從閃存寫入啟動器也不好。我根本沒有使用過linux自帶引導,從來是從windows引導至grub4dos,再來到linux。
等等等。
安裝過程挺快。屏幕依次提示出不同軟件包的安裝細節。最后說可以選擇Cancel然后reboot了。
離開安裝程序之后不要重新啟動。我是進入/mnt下安裝程序掛載的root分區,執行
chroot .
改變root分區掛載點在當前目錄。
這時shell不再是彩色的了。
重新掛載……所有的linux掛載點,/usr/local,/home,/var,/boot,etc.
之后進入/boot,默認初始啟動文件所在。執行最初提到的mkinitrd制作initial ramdisk,initrd.gz。執行
ls -ltr
最后應該是initrd.gz。連同vmlinuz一起,通過任何途徑最終復制到windows的ntfs分區下面。
那個我是從porteus啟動復制ext4下的這兩文件到ntfs下的。因為發現usbboot.img不能向ntfs寫入內容。嗯保障了win7的數據安全。
對于從win7的bcdloader啟動的grub4dos,配置menu.lst文件,指定vmlinuz和initrd.gz為linux核心文件,啟動。我的配置
title Slackware on portable
kernel (hd0,3)/slackboot/vmlinuz root=/dev/sdb7 ro rootdelay=13 locale=zh_CN vga=791
initrd (hd0,3)/slackboot/initrd.gz
boot
第二行的參數依次指定了root分區,標志只讀,讀取延時(當初為了延遲讀取移動硬盤,好像無所謂),語言(這個也沒有效果),以及最后,顯示器分辨率和色彩配置。
這里slackboot是保存啟動文件的目錄。分區是ntfs的。引導指向的是移動硬盤。
porteus是延續了slax的live Linux distro,是slackware的分支。不需安裝的Linux發行版。能夠以裝載ntfs分區下鏡像,附帶加載模塊文件的方式,啟動。也可以放在閃存里,通過grub4dos啟動。唔grub4dos不支持微軟的ex胖文件系統,對于windows數據相容的閃存必須是ntfs或fat32格式…fat16沒使過。porteus可以支持中文顯示(配置模塊),可以讀寫ntfs,作為linux可以訪問linux分區。
額外的有軟件工具可以在Windows下讀寫linux分區的文件。這現在沒有怎么關注。
總結
以上是生活随笔為你收集整理的一次slackware安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 厄瓜多尔签证(移民最便宜的国家只要5万)
- 下一篇: 谷歌学术上不去 解决方案