OpenVPN TAP অ্যাডাপ্টার ইনস্টল হয়নি: কোন ধাপটি ভেঙেছে?
ব্যর্থ অ্যাডাপ্টারের বার্তা তিনটি ধাপ কভার করে: ইনস্টলার, স্টেজ করা প্যাকেজ, তৈরি ডিভাইস। কিছু মুছে ফেলার আগে সংশ্লিষ্ট লগ অংশটি পড়ুন।
ইনস্টলার বলে TAP অ্যাডাপ্টার তৈরি করা যায়নি, আর ওই বাক্যটি অন্তত তিনটি ভিন্ন ব্যর্থতা কভার করে। প্যাকেজটি কখনোই স্টেজ না হয়ে থাকতে পারে, কোনো ডিভাইস তৈরি না করেই স্টেজ হয়ে থাকতে পারে, অথবা ডিভাইসটি এমন সমস্যা স্ট্যাটাস নিয়ে থাকতে পারে যা ইনস্টলার একটি সাধারণ ত্রুটি হিসেবে রিপোর্ট করেছে। আপনার কাছে এর মধ্যে কোনটি আছে তা ঠিক করে কে এটি সারাবে এবং আপনার কী প্রমাণ দরকার।
অন্য কিছুর আগে বিল্ড নম্বর ও ইনস্টলেশনের সময়কাল সংগ্রহ করুন। দুটোই লগের একটি ফোল্ডারকে এমন একটি অনুসন্ধানে বদলে দেয় যা আপনি সত্যিই চালাতে পারেন।
তিনটি ধাপ, তিনটি ভিন্ন লগ
প্রথম ধাপ হলো ইনস্টলার নিজেই, যা ফাইল আনপ্যাক করে, নিজের লগ রাখে এবং 1603-এর মতো একটি সারসংক্ষেপ কোড রিপোর্ট করে যা বলে লেনদেন ব্যর্থ হয়েছে কিন্তু কোথায় তা বলে না। দ্বিতীয়টি ড্রাইভার স্টোর, যেখানে একটি স্বাক্ষরিত প্যাকেজ পরবর্তী ব্যবহারের জন্য স্টেজ করা হয়, যা হার্ডওয়্যারে বেঁধে দেওয়ার চেয়ে আলাদা অর্জন। তৃতীয়টি ডিভাইস তৈরি, যেখানে Windows একটি ডিভাইস ইনস্ট্যান্স গড়ে, INF প্রয়োগ করে এবং ফলাফল setupapi লগে লিখে রাখে। এই ধাপগুলোর যেকোনো দুটির মধ্যে নীরব ফাঁক ব্যবহারকারীর কাছে একই বাক্য তৈরি করে।
সারসংক্ষেপ কোডটি লেনদেনের, আর ব্যর্থ ক্রিয়াটি একই লগের আগে কোথাও থাকে। কোডটি ব্যাখ্যা করার চেষ্টা না করে কোড থেকে পেছনের দিকে খুঁজুন।
প্রচেষ্টার আশপাশের setupapi.dev.log পড়ুন
প্রতিটি ডিভাইস ইনস্টলেশন C:\Windows\INF\setupapi.dev.log-এ একটি অংশ লেখে, আর SetupAPI লগ নির্দেশিকা ব্যাখ্যা করে ওই অংশগুলো এবং তাদের চূড়ান্ত স্ট্যাটাস কীভাবে সাজানো হয়। যে অংশের সময়কাল আপনার প্রচেষ্টাকে ঘিরে আছে সেটি খুঁজুন, তারপর আপনার চোখে পড়া প্রথম ত্রুটি লাইনটির বদলে পুরোটা পড়ুন। অসম্পর্কিত ডিভাইস নিয়ে সতর্কবার্তা দীর্ঘ লগজুড়ে দেখা যায় এবং এই ব্যর্থতা সম্পর্কে কিছুই ব্যাখ্যা করে না। মিলে যাওয়া অংশের চূড়ান্ত স্ট্যাটাসই সেই তথ্য যা প্রতিবেদনে উদ্ধৃত করার যোগ্য।
ওই অংশটিকে অ্যাডাপ্টারের নাম, ডিভাইস শনাক্তকারী এবং ইনস্টলার লগে উল্লিখিত INF প্যাকেজের সঙ্গে সম্পর্কিত করুন। একই সময়কালে তিনটি শনাক্তকারী মিলে যাওয়াই আরোপণকে নিরাপদ করে।
প্যাকেজ ও ডিভাইস আলাদাভাবে যাচাই করুন
স্টেজ করা প্যাকেজ শুধু প্রমাণ করে একটি স্বাক্ষরিত INF ড্রাইভার স্টোরে পৌঁছেছে। এই Windows প্রজন্মে pnputil /enum-drivers তৃতীয় পক্ষের প্যাকেজগুলো সরবরাহকারী, শ্রেণি, সংস্করণ ও প্রকাশিত নাম অনুযায়ী তালিকাভুক্ত করে, যা oem নম্বর থেকে অনুমান না করে OpenVPN অ্যাডাপ্টার প্যাকেজটি খুঁজে পেতে দেয়। ওই তালিকায় কিছুই বলে না যে একটি ডিভাইস আছে, চালু হয়েছে, বা আপনি যে প্যাকেজ পেয়েছেন তার সঙ্গে বাঁধা। এগুলো আলাদা প্রশ্ন, আলাদা উত্তর।
ডিভাইসের দিকটির নিজস্ব দৃষ্টিভঙ্গি আছে। শুধু পড়ার জন্য অ্যাডাপ্টার ইনভেন্টরি দেখায় Windows ইন্টারফেস সম্পর্কে এই মুহূর্তে কী মনে করে, আর লুকানো এন্ট্রিগুলো এমন ডিভাইস কভার করে যা আছে কিন্তু নিষ্ক্রিয়। দুটি তালিকা তুলনা করলে বোঝা যায় কোন ধাপ ব্যর্থ হয়েছে: প্যাকেজ নেই, ডিভাইস নেই, নাকি ডিভাইসটি সমস্যা স্ট্যাটাস নিয়ে আছে।
স্বাক্ষর ছোঁয়ার আগে অ্যাডাপ্টার যাচাই করুন
ইনস্টলারের সারসংক্ষেপ থেকে নয়, মেশিন থেকেই অবস্থাটি পড়ুন। নিচের কমান্ডগুলো স্টেজ করা ড্রাইভার প্যাকেজ, লুকানো এন্ট্রিসহ অ্যাডাপ্টার ইনভেন্টরি এবং যে নেটওয়ার্ক ডিভাইসগুলো OK রিপোর্ট করছে না সেগুলো তালিকাভুক্ত করে। পুনরায় চালু করার পরে সেগুলো চালান যাতে অপেক্ষমাণ ডিভাইস কার্যক্রম স্থির হয়।
pnputil /enum-drivers
Get-NetAdapter -IncludeHidden | Select-Object Name, InterfaceDescription, Status
Get-PnpDevice -Class Net | Where-Object Status -ne 'OK'
সংশ্লিষ্ট ডিভাইস ছাড়া প্যাকেজের উপস্থিতি ডিভাইস তৈরির দিকে ইঙ্গিত করে, আর ওই সময়কালের জন্য setupapi অংশটি কেন তা ব্যাখ্যা করে। সমস্যা স্ট্যাটাস নিয়ে ডিভাইসের উপস্থিতি ড্রাইভার বা তার স্বাক্ষরের দিকে ইঙ্গিত করে, যা অনুপস্থিত ডিভাইসের চেয়ে ভিন্ন আলোচনা। যে অ্যাডাপ্টার আছে এবং সংযোগবিহীন বলে রিপোর্ট করে সেটি সক্রিয় টানেল ছাড়া একটি কাজ করা ডিভাইস, ব্যর্থ ইনস্টলেশন নয়। মেরামতের জন্য ধাপ বাছাই করার আগে তিনটি আউটপুট একসঙ্গে পড়ুন।
স্বাক্ষর প্রয়োগ বন্ধ করা, নেটওয়ার্ক স্ট্যাক রিসেট করা বা প্রতিটি অ্যাডাপ্টার মুছে ফেলা প্রমাণগুলোকে অদৃশ্য করে দেয়। এই তিনটির কোনোটিই আপনি এখনো শনাক্ত করেননি এমন ধাপ সারায় না, আর প্রত্যেকটি সেই জিনিস সরিয়ে দেয় যা আপনাকে বলত কোন ধাপটি ছিল।