Từng bước cài đặt giả ngoại tuyến ArchLinux

Bài viết này được gửi cho tôi bởi người bạn Hugo Florentino của chúng tôi qua email, anh ấy kể cho chúng tôi nghe về kinh nghiệm của anh ấy khi cố gắng cài đặt ArchLinux mà không cần có bất kỳ kho lưu trữ nào, chỉ sử dụng đĩa cài đặt.

Cài đặt giả

Vài ngày trước, tôi đã tải xuống ArchLinux ISO để thực hiện cài đặt tại nhà. Trước đây đã sử dụng các bản phân phối khác cho phép bạn cài đặt ít nhất một cơ sở tối thiểu từ CD, tôi muốn làm điều gì đó tương tự, nhưng thật kỳ lạ, quá trình cài đặt Arch không được thiết kế cho một máy tính không có truy cập Internet (tác dụng phụ của các nhà phát triển sống trong thế giới thứ nhất).

Trong trường hợp của tôi, tôi đã có Windows 7 (với phân vùng khởi động và hệ thống) và Fedora (với hoán đổi và phân vùng khởi động / chuyên dụng của nó) trên đĩa của mình. Ý tưởng sau đó là cài đặt Arch ở nơi Fedora trước đây mà không phá hủy Windows trong quá trình này.

ArchLinux giả cài đặt ngoại tuyến

Chà, tôi đã khởi động từ đĩa CD Arch, chọn x86_64, và không có nhiều khó khăn để tôi ở lại một bảng điều khiển. Tôi nghĩ, "Chà, những người này thực sự nghiêm túc về việc không phải là một bản phân phối tân binh ... được rồi, hãy chơi cùng sau đó xem điều gì sẽ xảy ra."

Tôi liệt kê thư mục nơi tôi ở để xem có tài liệu nào không và tôi phát hiện ra rằng thực sự có một văn bản hướng dẫn cài đặt sơ cấp. Tôi viết những gì liên quan vào một tờ giấy (tôi không có máy in ở nhà) và bắt đầu làm việc.

Điều đầu tiên tôi làm là thay đổi bố cục bàn phím sang tiếng Tây Ban Nha từ Tây Ban Nha, điều này dễ dàng hơn tôi mong đợi (thậm chí còn có một cách kỳ lạ được gọi là giọng chúng tôi):

loadkeys es

Điều tiếp theo là gắn một đĩa ngoài để lưu một bản sao của MBR trong trường hợp có vấn đề và tình cờ lưu thông tin quan trọng mà tôi có trong Fedora của mình:

mkdir -p / mnt / tmp1 && mount / dev / sdb1 / mnt / tmp1 dd if = / dev / sda of = / mnt / tmp1 / mbr.bin bs = 512 count = 1

May mắn thay, LiveCD của Arch hỗ trợ NTFS và được tích hợp sẵn Người đi ngủ lúc nửa đêm (MC), vì vậy tôi không bao lâu nữa đã lưu xong phần thông tin còn lại.

Sau đó, tôi đã ngắt kết nối đĩa, xóa thư mục tạm thời và xóa đĩa bên ngoài một cách vật lý để giảm nguy cơ xảy ra "thảm họa".

umount /mnt/tmp1 && rmdir /mnt/tmp1

Vì vậy, tôi đã định dạng các phân vùng của mình, gắn kết phân vùng gốc và khởi động và bật trao đổi:

mkfs -t ext4 / dev / sda3 mkfs -t ext4 / dev / sda6 mount / dev / sda6 / mnt mkdir -p / mnt / boot mount / dev / sda3 / mnt / boot swapon / dev / sda5

Bước tiếp theo là trở ngại đầu tiên của tôi:

pacstrap /mnt base

Tự nhiên Arch đã cố gắng tìm kiếm cơ sở dữ liệu kho lưu trữ trên một trong các gương, và không thể tìm thấy bất kỳ, mọi thứ pacstrap did là tạo một cấu trúc thư mục trong / mnt, rất có tổ chức, nhưng rõ ràng là trống.

Qua điện thoại, tôi đã hỏi một vài người bạn sử dụng Arch rằng không có cách nào để cài đặt mà không cần truy cập internet ít nhất là các gói tương tự trên LiveCD, mà không cần sao chép kho lưu trữ vào đĩa và họ nói với tôi rằng ít nhất họ không biết làm thế nào để làm điều đó.

Tôi thấy 'thử thách' công nghệ thú vị, vì vậy tôi nghĩ, 'nếu Arch có thể đăng nhập ở chế độ LiveCD, nó sẽ có thể cài đặt vào ổ cứng ít nhất ở chế độ đó', vì vậy tôi đã thử bằng cách sao chép thủ công và làm theo phần còn lại của hướng dẫn (với một số thay đổi nhỏ khác) để xem điều gì đã xảy ra:

rsync -avl / {bin, etc, home, lib, lib64, opt, root, sbin, srv, usr, var} / mnt Arch-chroot / mnt genfstab -p / >> / etc / fstab echo hpc> / etc / tên máy chủ ln -sf / usr / share / zoneinfo / Cuba / etc / localtime locale-gen

Bước tiếp theo là trở ngại tiếp theo của tôi:

mkinitcpio -p linux

Lệnh này tạo ra một số lỗi, sau khi đọc hướng dẫn sử dụng lệnh và nội dung của tệp /etc/mkinitcpio.conf y /etc/mkinitcpio.d/linux.preset, Tôi hiểu rằng lệnh không thể tìm thấy tệp vmlinuz-linux, vì vậy tôi đã nhấn Ctrl + D để thoát khỏi môi trường chroot và tìm kiếm bất kỳ tệp nào giống nó:

find / -type f -iname "*vmlinuz*"

Arch LiveCD tình cờ gắn các tệp khởi động trong thư mục / chạy /, vì vậy tôi quyết định sao chép chúng vào / boot / để có chúng tiện dụng trong môi trường chroot của tôi:

cp /run/archiso/bootmnt/arch/boot/[memtest,intel_ucode.img} / mnt / boot / cp / run / archiso / bootmnt / Arch / boot / x86_64 / * / mnt / boot / Arch-chroot / mnt

Một lỗi khác mà tôi đã tìm thấy khi thử nghiệm với mkinitcpio là không thể tìm thấy nhãn của phân vùng gốc, tôi đã viết ra UUID của nó (mà tôi đã xác định bằng lệnh blkid) để sử dụng với lệnh, cuối cùng trông như thế này:

mkinitcpio -p linux -k /boot/vmlinuz root=UUID=d85938aa-83b8-431c-becb-9b5735264912

Lần này quá trình xây dựng đã kết thúc thành công, chỉ với một vài cảnh báo về các mô-đun không thể tìm thấy, nhưng trong trường hợp của tôi là không cần thiết. Để đề phòng, tôi đã xây dựng lại fstab, nhưng lần này chỉ định UUID:

genfstab -U -p / > /etc/fstab

Tôi nghĩ: ôi thôi, cuối cùng cũng tiến bộ. Và tôi đã tiếp tục thay đổi mật khẩu và cài đặt bộ nạp khởi động.

passwd grub-install --target = i386-pc --recheck / dev / sda grub-mkconfig -o /boot/grub/grub.cfg

Cuối cùng, và để có phương pháp, tôi nhấn Ctrl + D một lần nữa để thoát khỏi môi trường chroot, tháo rời mọi thứ và khởi động lại để xem điều gì đã xảy ra:

umount / mnt / boot umount / mnt reboot

Máy tính khởi động lại hiển thị menu Grub với Arch (Windows không xuất hiện ở đâu), vì vậy tôi đã chọn nó và mọi thứ dường như đang tải tốt cho đến khi ... hệ thống chỉ ra rằng có lỗi mà tôi nên kiểm tra bằng lệnh sau:

journalctl -xb

Phân tích các lỗi, tôi thấy rằng hầu hết có thể được bỏ qua, nhưng lỗi cuối cùng là bất thường, nói với tôi rằng không thể tìm thấy plymouth.

Tôi ngay lập tức nghĩ, Plymouth ??? Tại sao môi trường khởi động console lại cần một thứ như thế này? Điều đó dường như không được KISS cho lắm. Tôi chắc chắn đã không đặt nó, và tôi cũng không cần nó. "

Nhưng để thực tế, tôi nghĩ: "Chà, nhưng ít nhất nó nên được tham chiếu trong một số tệp, hãy xem ...":

find /etc -type f -print0 | xargs -0 grep -i "plymouth"

Đáng ngạc nhiên là không có tệp nào có chuỗi văn bản "plymouth" xuất hiện trong thư mục cấu hình. Khi đó tôi nghĩ: «Ồ, vậy… bạn ép mình với tôi? sau đó hãy xem cách bạn đồng hóa 'đại bác' (như chúng tôi nói ở Cuba) và "tôi đã chế tạo" plymouth từ đầu:

vi / usr / bin / plymouth chmod 755 / usr / bin / plymouth

Đối với những người trong số các bạn tự hỏi tôi đã đưa gì vào tệp đó, đây là nội dung toàn bộ vẻ vang của nó:

#! / bin / sh thoát

Tôi đã khởi động lại lần nữa và hy vọng có một số lỗi và ... thật đáng ngạc nhiên, systemd rất vui khi tìm thấy "thành phần thiết yếu" đó, bởi vì nó đã hoàn thành quá trình khởi động và không chậm trễ hơn nữa, nó đã khiến tôi ở trong bảng điều khiển. Vì tôi không thể tin vào mắt mình, tôi quyết định "gỡ cài đặt" plymouth và khởi động lại, để xem điều gì sẽ xảy ra:

khởi động lại rm -fr / usr / bin / plymouth

Thật kỳ lạ, lần này hệ thống khởi động lặng lẽ mà không làm tôi khó chịu thêm với sự vắng mặt của Plymouth. (Miễn bình luận)

Thêm Windows vào GRUB

Sau đó, nó vẫn để thêm mục Windows vào GRUB. Vì các tuyến đường truyền thống không hoạt động (sự kết hợp của grub-mkconfig với os-prober dường như không hoạt động tốt), tôi quyết định tạo mục nhập theo cách thủ công, mà tôi cần để phát hiện chuỗi bộ nạp khởi động Windows và UUID của phân vùng khởi động:

mkdir -p / mnt / winboot && mount / dev / sda1 / mnt / winboot grub-probe --target = hints_string / mnt / winboot / bootmgr grub-probe --target = fs_uuid / mnt / winboot / bootmgr

Điều này tương ứng trả lại hai chuỗi này cho tôi:

--hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1
DC788F27788EFF8E

Bằng cách này, tôi đã xác minh rằng UUID trả về giống với UUID được lấy cho phân vùng đó khi thực hiện lệnh blkid. Sau đó, cần phải tạo một mục nhập grub tùy chỉnh với dữ liệu đã nói:

vi /etc/grub.d/40_custom

Trong nội dung của nó:

#! / bin / sh executive tail -n +3 $ 0 # Tệp này cung cấp một cách dễ dàng để thêm các mục menu tùy chỉnh. Chỉ cần nhập # mục menu bạn muốn thêm sau nhận xét này. Hãy cẩn thận không thay đổi # dòng 'đuôi thực thi' ở trên. menuentry "Microsoft Windows 7 SP1" --class windows --class os {insmod part_msdos insmod ntfs insmod search_fs_uuid insmod ntldr search --fs-uuid --set = root --hint-bios = hd0, msdos1 --hint-efi = hd0, msdos1 --hint-baremetal = ahci0, msdos1 DC788F27788EFF8E ntldr / bootmgr}

Sau khi hoàn thành bước này, tôi quyết định đặt Windows làm hệ điều hành mặc định để vợ tôi không hoảng sợ và cháu gái tôi có thể chơi Barbies của cô ấy khi cô ấy đến. Đối với điều này, tôi chỉ cần chỉnh sửa tệp / etc / default / grub và tôi đặt đầu vào khởi chạy theo mặc định và thời gian chờ chỉ 3 giây.

GRUB_DEFAULT = 2 GRUB_TIMEOUT = 3

Nó chỉ còn lại để tạo lại cấu hình GRUB và khởi động lại:

grub-mkconfig -o /boot/grub/grub.cfg khởi động lại

May mắn thay, mọi thứ diễn ra như mong đợi. Tôi đã chọn mục Windows và nó bắt đầu vui vẻ.

Vì vậy, như bạn có thể thấy, nếu bạn có thể thực hiện ít nhất một cài đặt giả ArchLinux ngoại tuyến từng bước mà không chỉ trực tuyến với đĩa CD, mặc dù rõ ràng, những gì sẽ được cài đặt trên đĩa cứng về cơ bản là một LiveCD, nhưng ít nhất nó có thể khởi động hệ thống, sao chép tệp và chạy một số ứng dụng.

May mắn thay Sandy (KZKG ^ Gaara) đã ghé qua và sao chép Arch repo (mà tôi rất biết ơn), vì vậy tôi dự định sẽ sớm hoàn thành cài đặt ngoại tuyến thực sự, nhưng đây sẽ là một câu chuyện khác. Điều tôi có thể đảm bảo với bạn là từ lâu rồi tôi đã thiếu một chút thử nghiệm thú vị này. Thực tế, nếu tôi có thời gian, khả năng kết nối trong nhà và các điều kiện vật chất nhất định được đảm bảo, tôi có thể sẽ cố gắng tạo một bản phân phối tùy chỉnh dựa trên LFS, đây sẽ là một dự án thú vị hơn nhiều. 😉


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   peterczech dijo

    Hy vọng bạn dùng thử FreeBSD Elav.
    Đối với hướng dẫn của bạn, rất rất tốt và đầy đủ ...

    1.    Giốc dijo

      Bạn có thể thay đổi như thế nào. Tôi đảm bảo với bạn, bạn sẽ cảm thấy nhàm chán với FreeBSD trong vài tháng nữa.

      1.    lf dijo

        Thông tin thú vị, tuy nhiên tôi vẫn chưa thấy hướng dẫn cài đặt Arch trong hệ thống với UEFI, các cung thủ có PC mới không?

        1.    sống động dijo

          Việc cài đặt với UEFI trong ArchLinux được đơn giản hóa bằng cách cài Antergos, bạn chỉ phải tạo một phân vùng trong Fat32 với dung lượng dưới 500MB và tự động (khi bạn khởi động USB bằng UEFI), Antergos sẽ đánh dấu phân vùng đó là / boot.

      2.    peterczech dijo

        Đó là lý do tại sao tôi thay đổi ... Để không thay đổi nữa tôi chuyển từ Linux sang BSD: D.

    2.    peterczech dijo

      Thay đổi được thực hiện và hướng dẫn bằng văn bản: D.

  2.   r @ y dijo
    1.    ozkar dijo

      Tiếp tục sử dụng Arch, khi tôi đến Havana, tôi sẽ nhặt nó.

  3.   Alex dijo

    Tôi có một iso Arch Linux trên USB của mình, tôi không dám sử dụng nó do thiếu thời gian.
    Tôi sẽ xem xét kỹ bài viết và sau đó sử dụng nó!

  4.   trái tim chiến tranh dijo

    Bài viết tuyệt vời, nhân tiện, nó gợi nhớ cho tôi về cuộc phiêu lưu mà tôi đã trải qua để cài đặt Arch qua WIFI với BCM4312.

  5.   cải xoăn dijo

    Elav, thứ lỗi cho câu hỏi nhưng tôi là người mới sử dụng linux, tôi chỉ mới sử dụng ubuntu và Arch linux thu hút sự chú ý của tôi. Bạn bè của tôi nói rằng tôi sẽ không thể cài đặt nó vì nó là của các chuyên gia, nhưng nhìn thấy hướng dẫn ngoại tuyến của bạn, tôi nghĩ rằng làm theo từng bước tôi có thể làm được, đó là một thách thức cho tôi để cài đặt nó. Tôi chỉ muốn làm điều đó với Internet, câu hỏi của tôi: bạn có hoặc khi nào bạn sẽ làm một hướng dẫn với rất nhiều chi tiết (như thế này) để cài đặt nó?

    1.    daekko dijo

      Hướng dẫn được xuất bản trên trang web này. https://blog.desdelinux.net/guia-de-instalacion-de-arch-linux-2014/

      😀 Vì vậy, sử dụng hướng dẫn và chú ý đến những gì được thực hiện, chúng tôi sẽ có một cài đặt mà không có biến chứng, may mắn!

    2.    sống động dijo

      Bạn vẫn có thể cài đặt Antergos, là Archlinux nhưng với cài đặt "kiểu Ubuntu" .. 😀

  6.   mồ côi dijo

    Trong Arch có một phương tiện cài đặt thay thế khác cho các hình ảnh chính thức được gọi là Archboot, không giống như các hình ảnh chính thức, chứa kho [lõi] (và một số thứ khác), hữu ích cho các cài đặt ngoại tuyến (nó cũng là một kiến ​​trúc lai, nó hoạt động cho i686 và cho x86_64).

    Điều tồi tệ là nó chiếm 1GB ngay bây giờ (nó từng chiếm ít hơn nhiều năm trước) mà trước đây sẽ phải tải xuống ... và không có kết nối ổn định để thực hiện tải xuống ban đầu đó là điều phức tạp.

    Tôi để lại cho bạn ở đây một liên kết trong trường hợp nó hữu ích cho bạn: https://wiki.archlinux.org/index.php/archboot

    1.    sống động dijo

      Thật thú vị, tôi không biết anh ấy 😀

    2.    Hugo dijo

      Chà, thật kỳ lạ, một lúc trước tôi đã thử khởi động lại Archboot và khi tôi đến phần pacstrap, nó cho tôi biết rằng nó không thể tìm thấy gói ntfs-3g 🙁

      Nó cũng có những điểm đặc biệt khác, chẳng hạn như nó không đi kèm với mc hoặc các trang hướng dẫn sử dụng, và nó cần rất nhiều ram để cài đặt. Nó có vẻ không phải là một giải pháp được đánh bóng tốt.

  7.   Thép tối đa dijo

    Sự thật là có một cách rất đơn giản để cài đặt vòm ngoại tuyến và tôi đã phải thực hiện thử nghiệm và lỗi cổ điển để cài đặt nó trên PC tại nhà của mình (nơi tôi không có internet).

    Đối với điều này, bạn rõ ràng cần một số PC khác có kết nối Internet và cổng vòm. Chỉ cần tạo một pacman -Syu trước và sau đó là một cơ sở pacman -Sw (cộng với mọi thứ bạn muốn cài đặt rõ ràng). Sao chép tất cả các tệp từ bộ nhớ cache pacman vào thẻ USB và cả các tệp cơ sở dữ liệu (/var/lib/pacman/sync/{core.db, extra.db, community.db}.

    Sau đó, tiến hành cài đặt bình thường của vòm, nhưng trước khi đạt đến điểm tạo cơ sở pacstrap - d / mnt (hoặc bất cứ điều gì, tôi nói mọi thứ từ bộ nhớ>. <) Bạn phải chỉnh sửa pacstrap chính xác (với vi hoặc bất cứ điều gì bạn thích hoặc mang đĩa cài đặt) và gần cuối có dòng ám chỉ "pacman -Syy", chúng ta xóa nó đi. Sau đó, chúng tôi sao chép các tệp cơ sở dữ liệu pacman vào vị trí tương ứng của chúng (tất cả các tệp .db sang / var / lib / pacman / sync) và các tệp bộ đệm ẩn vào thư mục bộ đệm.

    Vì vậy, bây giờ chúng ta tiến hành với cơ sở pacstrap -loquenomeaccord / mnt và mọi thứ khác.

    Tất cả những gì tôi nói từ bộ nhớ, vì vậy có thể có một số chi tiết mà tôi đã đi, chẳng hạn như các tệp bộ nhớ cache mà tôi không nhớ chính xác nơi chúng đi nhưng nó phải nằm trong / var / cache / pacman / pkg hoặc nếu nó không thể được chỉ định trong pacstrap dường như với tôi.

  8.   leonel dijo

    Họ có thể thực hiện một hướng dẫn cfdisk với khởi động đôi hoặc ba lần 🙁, tùy theo những gì tôi cần để cài đặt vòm

    1.    Hugo dijo

      Thực sự không có nhiều điều để nói về cfdisk vì nó không phức tạp chút nào và trên thực tế, hướng dẫn cài đặt được tham chiếu ở trên về cơ bản cho thấy cách sử dụng nó. Nhưng nếu bạn đã cài đặt các hệ thống khác, bạn có thể sử dụng thứ gì đó thân thiện hơn, có lẽ là Gparted. Đối với Windows, có một công cụ miễn phí (mặc dù rất tiếc là không miễn phí) được gọi là Easeus Partition Master mà bạn có thể sử dụng, nó có vẻ hoạt động rất tốt.

      Đối với phần còn lại, tôi rất vui vì bạn thấy bài viết thú vị, tôi không thấy công lao to lớn của kinh nghiệm của tôi, nhưng Elav khuyến khích tôi chuẩn bị một cái gì đó về nó.