2012/11/25

網樂通直接裝 debian

[2012/11/29更新]
之前參考的文章是以 chroot 的方式在網樂通的 stlinux 上面再裝 debian, 這種方式使用起來並不方便。因此試著直接將 apt 套件裝到根目錄,看看到底還可不可以使用(此種作法應該會破壞原本的檔案架構,所以請自行備份)。
作法3: 從 chroot 安裝好的 debian 裝起
  1. 將 DOM 拔下來,裝到 linux 電腦以 gparted 重新將 /dev/sda2 放大到至少 600MB
  2. 將之前以 chroot 安裝到別的目錄(/dev/sda4) 複製到 /dev/sda2
  3. 編輯 /etc/network/interfaces, 內容如下
    auto eth0
    iface eth0 inet static
    address 192.168.137.2
    netmask 255.255.255.0
    gateway 192.168.137.1
    auto lo
    iface lo inet loopback
  4. 編輯 /etc/inittab  讓 console 也可輸入指令
    1:2345:respawn:/sbin/getty 38400 tty1
    2:23:respawn:/sbin/getty 38400 tty2
    3:23:respawn:/sbin/getty 115200 ttyAS0
  5. 註解 /etc/rcS.d/*clock* (因為會有錯誤訊息)
  6. 重新把 DOM 裝回網樂通開機, 相關版本log如附
  7. Debian 開機 script 安排和網樂通原本的stlinux 不同依序是
    1. /etc/inittab 
    2. /etc/init.d/rc S -> /etc/rcS.d/* 
    3. /etc/init.d/rc 2 -> /etc/rc2.d/*
  8. 嘗試升級新版 debian (squeeze),失敗(看來必須先升級kernel)
    1. apt-get install debootstrap
作法1(失敗):以busybox的dpkg 安裝
  1. 確定網路可以連接, 並且有 busybox 要先支援 ar, tar, dpkg
  2. wget http://www.si-linux.co.jp/pub/debian-sh/lenny-sh4/pool/main/a/apt/apt_0.7.20.2+lenny2_sh4.deb  # 取得 apt 套件
  3. dpkg -i apt_0.7.20.2+lenny2_sh4.deb
  4. 編輯 /etc/apt/sources.list
  5. apt-get udpate
  6. apt-get install ntpdate # 測試安裝
/etc/apt/sources.list 內容如下
deb http://www.si-linux.co.jp/pub/debian-sh/lenny-sh4/ lenny main contrib non-free
作法2(失敗): 從 repository 的dpkg 裝起
  1. 以較大空間放置 debian package
    1. mkdir -p /mnt/sda3
    2. mount /dev/sda3 /mnt/sda3
    3. mkdir -p /mnt/sda3/archives
    4. mkdir -p  /var/cache/apt
    5. ln -s /mnt/sda3/archives /var/cache/apt
  2. 以自製 busybox 替換 ar, tar
  3. wget http://www.si-linux.co.jp/pub/debian-sh/lenny-sh4/pool/main/d/dpkg/dpkg_1.14.31_sh4.deb
  4. 以 ar, tar 將 dpkg*.deb 裏面的 data.tar.gz 解到根目錄
  5. 解開裏面的 control.tar.gz, 手動執行 手動執行 ./postinst configure
  6. wget http://www.si-linux.co.jp/pub/debian-sh/lenny-sh4/pool/main/a/apt/apt_0.7.20.2+lenny2_sh4.deb  # 取得 apt 套件
  7. dpkg -i apt_0.7.20.2+lenny2_sh4.deb

曾解決問題如下:
  1. 使用 dpkg -i  apt* 時,dpkg: package libc6-dev depends on libc6, which is not installed or flagged to be installed
    1. 改用 dpkg -i --force-depends apt_0.7.20.2+lenny2_sh4.deb
  2. 使用 dpkg -i --force-depends apt* 時, 產生另一段訊息, 懷疑是 busybox 的 ash 語法與 debian 不相容,
    Unpacking apt (from apt_0.7.20.2+lenny2_sh4.deb)...Warning: Creating /etc/logrotate.d/apt as /etc/logrotate.d/apt.dpkg-newWarning: Creating /etc/cron.daily/apt as /etc/cron.daily/apt.dpkg-newWarning: Creating /etc/apt/apt.conf.d/01autoremove as etc/apt/apt.conf.d/01autoremove.dpkg-newSetting up apt (0.7.20.2+lenny2)...
    postinst called with unknown argument `'
    dpkg: postinst failed, exit code 256
  3. 運用已下載 deb 檔重新安裝
    1. cd  /var/cache/apt/archives/ ; dpkg -i xxx.deb
  4. 使用 apt-get install ntpdate 安裝, 缺少相依性檔案(放棄改用作法2)
  5. 作法2, dpkg -i apt* 訊息 dpkg: failed to open package info file `/var/lib/dpkg/available' for reading: No such file or directory
    1.  touch /var/lib/dpkg/available, 重跑產生訊息,
      dpkg: `ldconfig' not found on PATH.
      dpkg: `update-rc.d' not found on PATH.
      dpkg: 2 expected program(s) not found on PATH.
      NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
    2. 做了假執行檔ldconfig.update_rc.d, 重跑產生訊息(放棄改用作法3)
      Selecting previously deselected package apt.
      (Reading database ... 0 files and directories currently installed.)
      Unpacking apt (from apt_0.7.20.2+lenny2_sh4.deb) ...
      dpkg: dependency problems prevent configuration of apt:
      apt depends on libc6 (>= 2.7-1); however:  Package libc6 is not installed.
      apt depends on libgcc1 (>= 1:4.3); however:  Package libgcc1 is not installed.
      apt depends on libstdc++6 (>= 4.3); however:  Package libstdc++6 is not installed. apt depends on debian-archive-keyring; however:  Package debian-archive-keyring is not installed.
      dpkg: error processing apt (--install): dependency problems - leaving unconfigured
      Errors were encountered while processing:
       apt
  6. 作法3, debootstrap 失敗, 訊息 FATAL: kernel too old

沒有留言: