! هذا الموضوع تطرق إلى طريقة تثبيت آرتش لينكس إصدار 2011.08.19 و هو غير مناسب لتثبيت الإصدارات الحديثة لأن خطوات التثبيت إختلفت كثيرا !
مشاكل الإقلاع و حلولها + إعداد الربط بشبكة الأنترنت
مشاكل الإقلاع و حلولها :
بعد تثبيت آرتش لينوكس و إعادة التشغيل هنالك احتمالين:
- إما أنه سيعمل بنجاح و سيقف في انتظار إدخال اسم مدير النظام root و كلمة السر.
- أو أنه لن يكمل الإقلاع لأحد هذه الأسباب:
- وقع خطأ في اختيار نوع الربط الخاص بالقرص الصلب (IDE أو SATA) في هذه الحالة ستكون رسالة الخطأ شبيهة بما يلي:
الحل هو:
إدخال كلمة سر root كما طلب منك ثم تنفيذ الأمر التالي:
mount -n -o remount,rw /
ثم الأمر التالي حتي يتبين لنا كيف تسمي أقسام الأقراص (هل هي /dev/sdaX أو /dev/hdaX
fdisk -l
بعد ذلك سننفد الأمر التالي لنغير تسميات الأجزاء حسب النتيجة التي توصلنا بها من fdisk
nano /etc/fstab
سيظهر لك محتوى الملف، ستتحرك باستخدام مفاتيح الاتجاهات لتغير hda بـ sda أو sda بـ hda حسب الاحتياج بالنسبة للأسطر الثلاثة الأخيرة. مثال:
/dev/hda1 /boot ext2 defaults 0 1 /dev/hda2 swap swap defaults 0 0 /dev/hda3 / ext4 defaults 0 1
/dev/sda1 /boot ext2 defaults 0 1 /dev/sda2 swap swap defaults 0 0 /dev/sda3 / ext4 defaults 0 1
بعد ذلك احفظ التغييرات بالضغط على Ctrl+O ثم Ctrl+X للخروج
بعد ذلك نفد الأمر reboot لإعادة التشغيل.
- عتاد معين أو البرنامج الأساسي للوحة الأم BIOS غير متوافق مع النواة لينوكس و في هذه الحالة جرب إضافة أحد هذه المعاير أو كلها عند إقلاع النظام:
noapic nolapic acpi=off
لإضافتها يكفي تحديد الخيار الأول "Arch Linux" على مدير الإقلاع grub ثم الضغط مرة واحدة على حرف e ثم تختار السطر الثاني الذي يحتوي على "kernel /vmlinuz26 root=..." لتضيف تلك المعايير متبوعة بضغطة زر enter ثم ضغطة بزر b لتنفيذ الإقلاع
- إضافة: إدا كنت ممن يعانون من التغيير الأخير لتعريف intel جرب إضافة nomodeset إلى النواة متبعا الطريقة أعلاه.
- أو أنك أهملت خطوة معينة في مراحل تثبيت آرتش لينوكس في الموضوع السابق
معلومة إضافية: إدا كانت الرسائل المنبثقة من النظام عند الإقلاع تختفي بعد فترة وجيزة بحيث لا تستطيع قراءتها، فيمكنك تنفيذ ما يلي لتعطيل ذالك التصرف:
cp /etc/issue /etc/issue_bak echo > /etc/issue
إعداد الربط بشبكة الأنترنت :
بالنسبة للمستخدمين الذي يستعملون الربط اللاسلكي للربط بالشبكة قد يلاحظون تأخر الإقلاع ثم ظهور رسالة "Starting Networking [Failed]" و ذلك راجع إلى كون كرت الربط اللاسلكي غير جاهزة بشكل كامل بعد.
قبل أن نشرع في تثبيت و إعداد باقي البرامج علينا أولا أن نتأكد من أننا نستطيع الوصول إلى شبكة الأنترنت.
- إدا كنت تستخدم ربط سلكي (Wired) مع راوتر (Router) فإنك حتما متصل الآن و لتتأكد جرب تنفيذ الأمر التالي:
ping google.com -c 3
إدا توصلت بنتيجة مفادها في النهاية كالتالي فإن الربط يعمل جيدا و عليك الإنتقال إلى الجزء الثالث.
"3 packets transmitted, 3 received, 0% packet loss"
أما إدا توصلت بالرسالة التالية:
ping: unknow host google.com
فتأكد أن راوتر (router) معد بطريقة صحيحة و أنه يعمل، كما عليك أن تتأكد أنه قادر على إعداد الحواسب المتصلة به بشكل تلقائي من خلال DHCP. كما لا تهمل جودة الكابل (cable) الذي يربط الراوتر و الحاسوب. إذا تأكدت من كل ذلك جرب مرة أخرى من خلال تنفيذ الأمر التالي:
dhcpcd eth0
معلومة إضافية: أحيانا يكون الجهاز يتوفر على أكثر من بطاقة للربط بالشبكة، في هذه الحالة عليك عرض قائمة بأسمائها:
ifconfig
سيظهر لك على اليسار على الأقل تسمية eth0 و lo.
إدا ظهرت فقط lo لوحدها فإما أن كرت الربط لم يتعرف عليها (احتمال مستبعد لكثرة العتاد المتعرف عليه من طرف النواة) أو أنها غير مركبة بشكل صحيح على الجهاز.
أما إدا ظهرت لك lo, eth0, eth1 أو أكثر فجرب تنفيذ الأمر dhcpcd معها. مثال:
dhcpcd eth1
dhcpcd eth2
- إدا كنت تستخدم الربط اللاسلكي (Wireless) مع راوتر (Router) فعلينا أن نتبع الخطوات التالية:
- وجب التذكير أنني لن أتطرق إلى طريقة إعداد بطائق الربط اللاسلكي التي تحتاج إلى أداة ndiswrapper لتشغيل تعريفات ويندوز على جنو/لينوكس أو التي تحتاج إلى برنامج مصنع (firmware) غير متوفر بشكل يسمح استخدامه.
كما لن أدخل في تفاصيل إعدادات الربط اللاسلكي باستخدام WPA/WPA2 إلا بشكل موجز لأن ذلك عبء إضافي نحن في غنا عنه في هذه المرحلة.
إذا كان ولابد من استخدام ميزة أمنية معينة لـ WPA/WPA2 أو أحد التعريفات الخاصة عليك تتبع الخطوات هنا و هنا و هنا.
- أولا، علينا معرفة بطائق الربط اللاسلكي المتعرف عليها على الجهاز. سننفذ الأمر التالي:
iwconfig
و التي ستعرض تسمية كل بطاقة لاسلكية (wlan0, wlan1,..) و الأنماط التي تدعمها مثلا (802.11b/g/a/n).
إضافة: هنالك بطائق تسمى بأسماء مختلفة عن wlan0 مثلا كبطائق Atheros التي تسمى ath0. في هذه الحالة عليك تعديل الخطوات لتناسب التسمية الجديدة و لا تنسى مراجعة هذه الصفحة للحصول على معلومات إضافية بخصوصها
- الآن سنحاول تشغيل و تفعيل الرابط اللاسلكي من خلال:
ifconfig wlan0 up
بعد ذلك إما أنها ستعمل مباشرة بعد ذلك و إما لن تعمل لأحد هذه الأسباب:
- (1) - النظام يتعرف عليها و عثر على برنامج المصنع لكن النظام ما زال في حاجة إلى تحديد ESSID و التشفير المناسب إن كنت تستخدمه.
- (2) - النظام يتعرف عليها لكن لا يستطيع تشغيلها لأنها تحتاج إلى برنامج المصنع الذي لم يسطع العثور عليه
- (3) - النظام يتعرف عليها لكن لا يستطيع تشغيلها لأنها تحتاج إلى إعدادات يدوية خاصة بها.
- (4) - النظام لا يتعرف عليها لأنها ليست مدعومة كليا أو جزئيا
بالنسبة للاحتمال الثالث (3) و الرابع (4) فلن أغطيه لأنه لا يمكنني شرح طريقة إعداد كل أنواع البطائق اللاسلكية، لكن قم بزيارة هذه الصفحة قد تجد فيها بعض التوضيحات.
بالنسبة للاحتمال الثاني (2) فعلينا أن ننفذ هذا الأمر لمعرفة ماذا كان جواب النواة:
dmesg | grep firmware
إدا توصلت مثلا بـ:
usb 2-1: firmware: requesting zd1211/zd1211b_ub usb 2-1: Couldn't load firmware file zd1211/zd1211b_ub. Error number -2 zd1211rw 2-1:1.0: Couldn't loa firmware file zd1211/zd1211b_ub. Error number -2
iwlagn 0000:02:00.0: firmware: requesting iwlwifi-5000-2.ucode iwlagn 0000:02:00.0: iwlwifi-5000-2.ucode firmware file req failed: -2 iwlagn 0000:02:00.0: firmware: requesting iwlwifi-5000-1.ucode iwlagn 0000:02:00.0: iwlwifi-5000-1.ucode firmware file req failed: -2
هنا تعلم أن البطاقة اللاسلكية في حاجة إلى برنامج المصنع الذي ربما نسيت أن تثبته كما شرحت في الموضوع السابق. لا مشكلة، كي تعرف الحزمة المناسبة التي تضم برنامج المصنع الذي أنت في حاجة إليه، استخدم الكلمة التي تلي firmware أو requesting كما هو موضح أعلاه باللون الداكن ثم نفذ الأمر التالي pacman -Ss متبوع بتلك الكلمة كما شرحت:
pacman -Ss iwlwifi-5000
pacman -Ss zd1211
تذكر جيدا أنني ذكرت في التدوينة السابقة أنه إن لم تكن متيقننا من الحزم الخاصة ببرنامج المصنع قم بتحديد كل الحزم و قد ذكرت أسمائها هناك. لكن عموما إن لم تنتبه إلى تلك النقطة فاتبع ما يلي.
تلك الحزم موجودة على مستودعات التوزيعة - و التي لا يمكن الوصول إليها بعد - و موجودة على قرص التثبيت. من أجل ذلك أدخل القرص في السواق (CD Device) ثم نفذ الأوامر التالية:
mount /dev/sr0 /media/cd ls /media/cd mkdir -p /root/pkgs mount -o loop /media/cd/core-pkgs.sqfs /root/pkgs/ cp -uv /root/pkgs/* /var/cache/pacman/pkg/
pacman -S iwlwifi-5000-ucode
أو تعويض الأمر الأخير مثلا بـ:
pacman -S zd1211
أجب بـ Y ليتم التثبيت ثم بعد الإنتهاء نفك الربط بـ
umount /media/cd/core-pkgs.sqfs umount /dev/sr0
و من ثم نخرج قرص التثبيت من السواق.
الآن سأشرح العمليات التي قمنا بها في الأسطر السابقة:
* السطر الأول mount /dev/sr0 /media/cd يربط تسمية السواق الخاص بالقرص المدمج CD-Rom بالمجلد cd الموجود على /media
* السطر الثاني ls /media/cd يعرض محتوى المجلد الذي يمثل قرص التثبيت. من بين المخرجات سنجد core-pkgs.sqfs
* السطر الثالث mkdir -p /root/pkgs ينشئ مجلد pkgs داخل مجلد مدير النظام root الذي نستخدمه حاليا
* السطر الرابع mount -o loop /media/cd/core-pkgs.sqfs /root/pkgs/ نربط محتوى الملف core-pkgs.sqfs الذي هو عبارة عن قرص على صيغة ملف من نوع SquashFS. نربطه بالمجلد /root/pkgs
* السطر الخامس cp -uv /root/pkgs/* /var/cache/pacman/pkg/ ننسخ محتوى المجلد الذي يضم كل الحزم على المجلد الذي تخزن فيه الحزم المثبتة.
* السطر السادس و/أو السابع pacman iwlwifi-5000-ucode و/أو pacman -S zd1211 نثبت الحزم التي تضم برنامج المصنع الخاص ببطاقة الشبكة اللاسلكية.
* السطر الثامن و التاسع umount /media/cd/core-pkgs.sqfs و umount /dev/sr0 نلغي الربط الذي أضفناه سابقا.
=> تذكر أن استخدامي لـ iwlwifi-5000-ucode و zd1211 كان فقط كمثال.
بالنسبة لنا كمبتدئين يكفي إعادة تشغيل النظام حتى يتم تشغيل برنامج المصنع بشكل تلقي. نفذ الأمر التالي:
reboot
- وجب التذكير أنني لن أتطرق إلى طريقة إعداد بطائق الربط اللاسلكي التي تحتاج إلى أداة ndiswrapper لتشغيل تعريفات ويندوز على جنو/لينوكس أو التي تحتاج إلى برنامج مصنع (firmware) غير متوفر بشكل يسمح استخدامه.
- => بالنسية للإحتمال الأول (1) : يفترض أن عملية تثبيت برنامج المصنع (firmware) تمت بنجاح إما باتباع الخطوات أعلاه أو باتباع خطوات الموضوع السابق أو أن بطاقة اللاسلكي لديك مدعومة بشكل تلقائي من طرف النواة.
أولا، لننفذ الأمر التالي لعرض كل بطائق الربط اللاسلكي:
iwconfig
ثم نفّعلها من خلال:
ifconfig wlan0 up
ثم ننفذ ما يلي حتى نكتشف المزود اللاسلكي - أو ما يعرف بـ Access Point - و هو عادةً جهاز الراوتر.
iwlist wlan0 scan
إضافة: إدا تواجدت مجموعة من نقاط التزويد اللاسلكي فقد لا تستطيع رؤية سوى الأسطر الأخيرة. لمشاهدة كل الأسطر يمكن تنفيذ الأمر السابق هكذا iwlist wlan0 scan | less الآن ستتمكن من التحرك باستخدام السهم الأعلى و الأسفل أو q للخروج
إدا كانت قيمة Encryption key تساوي no فهذا يعني أنه لا تشفير يستخدم بينك و بين المزود
أما إدا كانت قيمة Encryption key تساوي yes فهذا يعني أن المزود يستخدم أحد أنواع التشفير كـ WEP, WPA, WPA2..
في الحالة الأولى يكفي تنفيذ الأمر التالي بعد تغيير قيمة Essid من "ADSL5536" إلى القيمة التي توصلت بها في المخرجات.
iwconfig wlan0 essid "ADSL5536"
في الحالة الثانية يجب أن تعرف نوع التشفير المستخدم و كلمة السر أو المفتح، طبعا إما من خلال الدخول على صفحة إعدادات الراوتر أو الاتصال بمن يملك تلك المعلومات:
في حالة استخدام تشفير WEP مع مفتح 128bit بالصيغة الرقمية السداسية عشر (Hexadecimal)، نفذ:
iwconfig wlan0 essid "ADSL5536" key 6db48e9e010824d4596c1648d9
في حالة استخدام تشفير WEP مع كلمة سر، نفذ:
iwconfig wlan0 essid "ADSL5536" key s:MyWEPPassword
بالنسبة لتشفير WPA سأكتب الطريقة لكن دون الدخول في دهاليز شرح كل تفاصيلها أو تقنيات الحماية الممكنة.
cp /etc/wpa_supplicant.conf /etc/wpa_supplicant.conf_bak wpa_passphrase ADSL5536 "MyWPAPassword" > /etc/wpa_supplicant.conf wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf
بالنسبة لتشفير WPA2 فعليك اتباع الخطوات السابقة الخاصة بـ WPA ثم تقوم بتعديل الملف /etc/wpa_supplicant.conf لتضيف بعض المعلومات بخصوص proto و key_mgmt و pairwise و group. مثال :
nano -w /etc/wpa_supplicant.conf/
network={ ssid="ADSL5536" proto=RSN key_mgmt=WPA-PSK pairwise=CCMP TKIP group=CCMP TKIP psk=7b271c9a7c8a6ac07d12403a1f0792d7d92b5957ff8dfd56481ced43ec6a6515 }
لمعرفة المزيد بخصوص WPA و WPA2 طالع الصفحة التالية.
الآن بعد اكتشاف و الربط مع مزود اللاسلكي سننفذ ما يلي لنرى هل نستطيع الحصول على إعدادات التشبيك من المزود ثم الإتصال بخادم غوغل:
iwconfig wlan0 dhcpcd wlan0 ping -c 3 www.google.com
النتيجة التي ستظهر إما مجموعة من الأسطر تمثل الردود التي توصلنا بها من عند خادم غوغل و هذا يعني أننا نجحا أخيرا بالربط اللاسلكي. أو أن تظهر رسالة خطأ مثل ping: unknow host google.com. في هذه الحالة ليس بإمكاني بعد أن ساعدتك أكثر و يفضل أن تتأكد جيدا من اتباعك للخطوات المذكورة أعلاه أو أن تستخدم الربط السلكي.
قبل أن ننتقل إلى الجزء الثالث يمكننا أن نحتفظ بالإعدادات السابقة حتى لا نحتاج إلى إعادة تنفيذها كل مرة يقلع النظام.
هناك طريقتين للحفاظ على إعدادات الربط اللاسلكي: الأولى صالحة فقط للربط بدون تشفير أو بتشفير WEP و الثانية صالحة لكل الأنواع.
- الطريقة الأولى [تنبيه: سيتوقف دعمها مستقبلا ] تعتمد على تعديل ملف /etc/rc.conf. الخطوات التي يجب علينا إتباعها:
نفتح الملف باستخدام المحرر النصي nano
nano -w /etc/rc.conf
wlan0="dhcp"
wlan_wlan0="wlan0 essid ADSL5536"
أو أن تضيف السطر التالي إدا كنت تستخدم تشفير WEP بمفتح و ذلك بعد تغير ADSL5536 بإسم الموزع/نقطة الدخول لديك
wlan_wlan0="wlan0 essid ADSL5536 key 1a2b3c4d5e6f7a8b9c0d"
أو أن تضيف السطر التالي إدا كنت تستخدم تشفير WEP بكلمة سر و ذلك بعد تغير ADSL5536 بإسم الموزع/نقطة الدخول لديك
wlan_wlan0="wlan0 essid ADSL5536 key s:MyWEPPassword"
بعد ذلك عليك أن تضف wlan0 إلى سطر INTERFACES فتصبح النتيجة كما يلي:
INTERFACES=(eth0 wlan0)
بعد إعادة تشغيل النظام قد تتوصلون برسالة مفادها أنه حصل انقضاء للوقت WIRELESS_TIMEOUT. هذا يحصل إما لأنك أخطأت في تحديد نقطة الوصل/الموزع و باقي معايير الربط أو يحدث مع بعض بطاق الربط اللاسلكي التي تحتاج إلى وقت أطول لتجهز. في الحالة الثانية الحل هو ما يلي:
نفتح الملف /etc/rc.d/network
nano -w /etc/rc.d/network
فتكون النتيجة كما يلي:
wi_up() { .. .. /usr/sbin/iwconfig $iwcfg /sbin/ifconfig ${1} up sleep 3 [[ -z "$WIRELESS_TIMEOUT" ]] && WIRELESS_TIMEOUT=2 sleep $WIRELESS_TIMEOUT .. ..
- الطريقة الثانية هي استخدام أداة netfcg التي سبق و أن ثبتناها مع النظام الأساسي. هذه الأداة تجعل من إعداد مختلف أنواع بطائق الربط بالشبكات - سواء السلكية و اللاسلكية - أمرا يسيرا.
أولا، Netcfg يستخدم المعرفات (Profiles) و يوفر في البداية مجموعة من المعرفات القياسية المتواجدة داخل المجلد /etc/network.d/examples/ نذكر من بينها:
- wireless-open معرف للربط اللاسلكي بدون تشفير
- wireless-wep معرف للربط اللاسلكي بتشفير WEP بمفتح
- wireless-wep-string-key معرف للربط اللاسلكي بتشفير WEP بكلمة سر
- wireless-wpa معرف للربط اللاسلكي بتشفير WPA Personal بكلمة سر
- wireless-wpa-config معرف للربط اللاسلكي بتشفير WPA Enterprise بإعدادات مخصصة خارجية
- wireless-wpa-configsection معرف للربط اللاسلكي بتشفير WPA Enterprise بإعدادات مخصصة داخلية
- ethernet-dhcp معرف للربط السلكي ذو الإعداد التلقائي
- ethernet-static معرف للربط السلكي ذو الإعداد الثابت
بعد ذلك ننسخ ملف المعرف القياسي الذي يهمنا. مثلا:
cp /etc/network.d/examples/wireless-open /etc/network.d/mynet
ثم نعدل قيمة كل من: INTERFACE , ESSID , SECURITY , KEY WPA_CONF حسب المعرف القياسي الذي اخترناه و ملائمته لنوع الربط اللاسلكي الذي نرغب فيه.
مثلا بالنسبة لربط لاسلكي بدون تشفير سأحرر الملف mynet ثم أعدل فيه ما يلي:
nano -w /etc/network.d/mynet CONNECTION='wireless' DESCRIPTION='A simple opened wireless connection' INTERFACE='wlan0' SECURITY='none' ESSID='ADSL5536' IP='dhcp'
# Uncomment this if your ssid is hidden
#HIDDEN=yes
أيضا نفس الطريقة يمكن أن نتبعها لإعداد ربطك اللاسلكي بتشفير WPA
cp /etc/network.d/examples/wireless-wpa /etc/network.d/mynet nano -w /etc/network.d/mynet CONNECTION='wireless' DESCRIPTION='A simple WPA encrypted wireless connection' INTERFACE='wlan0' SECURITY='wpa' ESSID='ADSL5536' KEY='WirelessKey' IP='dhcp' # Uncomment this if your ssid is hidden #HIDDEN=yes
بعد حفظ التغييرات يكفي تنفيذ الأمر التالي للربط بشبكة الإنترنت:
netcfg mynet
ping -c 3 google.com
netcfg down mynet
بعد تأكدنا من أن كل شيء على مايرام سنعدل قيمة NETWORKS و DAEMONS على ملف /etc/rc.conf
nano -w /etc/rc.conf .. NETWORKS=(mynet) .. .. DAEMONS=(syslog-ng ... net-profiles ...)
إضافة 1: NETWORKS تسبقها علامة #. لا تنسى إزالتها كما في المثال أعلاه
إضافة 2: إدا كنت ستستخدم الربط اللاسلكي فقط فيفضل أن تأتي net-profiles مباشرةً بعد syslog-ng على سطر DAEMONS
إضافة 3: إدا كنت ستستخدم الربط اللاسلكي فقط فيمكنك تعطيل خدمة network على DAEMONS بإضافة علامة التعجب ! قبل network مثال:
DAEMONS=(syslog-ng net-profiles !network @netfs @crond)
إضافة 4: لم أتطرق إلى خصائص Netcfg الجديدة مثل ROAMING. إدا أردت اكتشاف المزيد يمكنك زيارة هذه الصفحات: هنا، هنا و هنا.
إضافة 5: إدا توصلتم برسالة خطأ مفادها "DHCP IP lease attempt failed" عند محاولة تشغيل بطاقة اللاسلكي عند الإقلاع، يتوجب عليك إضافة DHCP_TIMEOUT=30 إلى الملف /etc/network.d/mynet
و سبب حدوث ذلك الخطأ هو أن الراوتر أو البطاقة اللاسلكية تحتاج إلى وقت أطول لإرسال أو استقبال الإعدادات التلقائية. المزيد من الحلول هنا.
- الطريقة الأولى [تنبيه: سيتوقف دعمها مستقبلا ] تعتمد على تعديل ملف /etc/rc.conf. الخطوات التي يجب علينا إتباعها:
- لستخدام موديم من الجيل الثالث (3g modem) كوسيلة ربط يالنت يرجى مراجعة هذا الموضوع لتستخدمة كمثال.
- لستخدام موديم Sagem Fast 800 اتبع الطريقة المشروحة في هذا الموضوع.
الآن بعد تمكننا من الربط بشبكة الإنترنت ستبدأ مرحلة تثبيت كل حزم البرامج لنحصل على نظام مكتبي متكامل. التتمة في التدوينة التالية.
حيّاك الله - ألف شكر لك يا طيب على الشرح المبسط والمفصل
ردحذف